Compare commits

...

4 Commits

Author SHA1 Message Date
Kevin F 0259dd1837 added environment variables to the compose test file 2021-10-14 18:15:50 +00:00
Kevin F 982f3ee459 update readme with testing info 2021-10-13 23:55:31 +00:00
Kevin F 58afc09ecb added selenium test files 2021-10-13 23:54:16 +00:00
Kevin F a022be36e4 fix docker run command 2021-10-11 18:45:45 +00:00
7 changed files with 70 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
dist
node_modules
.env

11
Dockerfile-selenium Normal file
View File

@ -0,0 +1,11 @@
FROM selenium/standalone-firefox
USER root
RUN apt-get -y update
RUN apt-get -y install python3-pip
USER seluser
RUN python3 -m pip install helium --user
WORKDIR /home/seluser
ADD tests/* /home/seluser/
ENTRYPOINT [ "python3", "tests.py" ]

View File

@ -71,7 +71,7 @@ $ node dist/index.js
### Docker
```
$ docker run -p 8080:8080 -e -it RIMGU_ADDRESS=0.0.0.0 -e RIMGU_PORT=8080 rimgu:latest
$ docker run -p 8080:8080 -e RIMGU_ADDRESS=0.0.0.0 -e RIMGU_PORT=8080 -it rimgu:latest
```
If you decide to run a public instance, consider opening an issue to have it listed here :)
@ -106,6 +106,12 @@ This software is released under the AGPL 3.0 license. In short, this means that
You are also requested to not remove attribution and donation information from forks and publications.
### Testing
Tests are done with Selenium (Helium Python package)
Simply run the tests with ./run-tests.sh and if no errors spit out and the exit code is 0, it passed. Set environment variables for the tests in a .env file
## Support
Donations are welcome and will contribute to development, maintenance and a future public hosted instance.

20
docker-compose-tests.yml Normal file
View File

@ -0,0 +1,20 @@
services:
rimgu:
build: .
network_mode: host
environment:
- RIMGU_PORT
- RIMGU_HOST
- RIMGU_ADDRESS
- RIMGU_HTTP_PROXY
- RIMGU_HTTPS_PROXY
- RIMGU_IMGUR_CLIENT_ID
- RIMGU_USE_API="false"
- RIMGU_PAGE_TITLE
selenium:
depends_on:
- "rimgu"
build:
dockerfile: ./Dockerfile-selenium
context: .
network_mode: host

5
run-tests.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
sudo docker-compose -f docker-compose-tests.yml up --abort-on-container-exit --build
EXIT_CODE=$?
sudo docker-compose -f docker-compose-tests.yml down
exit "$EXIT_CODE"

View File

@ -0,0 +1,12 @@
// Script is executed by selenium because the css selector is bugged in helium/selenium
// Check for the meme video's element presence then write to page so helium
// knows it is there
let vid = document.querySelectorAll('source[src="/InQKYvf.mp4"]')
if (vid.length){
let p = document.createElement("p")
p.innerText = "video exists"
document.body.appendChild(p)
}

14
tests/tests.py Normal file
View File

@ -0,0 +1,14 @@
import time
import helium
gallery_id = "cMeqLga"
f = helium.start_firefox(f"http://127.0.0.1:8080/gallery/{gallery_id}", headless=True)
assert helium.Text("2021-10-13T15:25:25Z").exists()
# Check for meme video by running a js to create a p element if it exists
with open(f"find_video_for_{gallery_id}.js", "r") as script:
f.execute_script(script.read())
assert helium.Text("video exists").exists()