0b27b6e297
Co-authored-by: rlauu <46294892+rlauu@users.noreply.github.com>
End to end testing framework
wrapper
The wrapper script (compiled as run_tests
) runs multiple tests on Jellyfin servers to verify that the plugin works as intended. It tests:
- Introduction timestamp accuracy (using
verifier
) - Web interface functionality (using
selenium/main.py
)
verifier
Description
This program is responsible for:
- Saving all discovered introduction timestamps into a report
- Comparing two reports against each other to find episodes that:
- Are missing introductions in both reports
- Have introductions in both reports, but with different timestamps
- Newly discovered introductions
- Introductions that were discovered previously, but not anymore
- Validating the schema of returned
Intro
objects from the/IntroTimestamps
API endpoint
Usage examples
- Generate intro timestamp report from a local server:
./verifier -address http://127.0.0.1:8096 -key api_key
- Generate intro timestamp report from a remote server, polling for task completion every 20 seconds:
./verifier -address https://example.com -key api_key -poll 20s -o example.json
- Compare two previously generated reports:
./verifier -r1 v0.1.5.json -r2 v0.1.6.json
- Validate the API schema for three episodes:
./verifier -address http://127.0.0.1:8096 -key api_key -validate id1,id2,id3
Selenium web interface tests
Selenium is used to verify that the plugin's web interface works as expected. It simulates a user:
- Clicking the skip intro button
- Checks that clicking the button skips the intro and keeps playing the video
- Changing settings (will be added in the future)
- Maximum degree of parallelism
- Selecting libraries for analysis
- Introduction requirements
- Auto skip
- Show/hide skip prompt
- Timestamp editor (will be added in the future)
- Displays timestamps
- Modifies timestamps
- Erases season timestamps
- Fingerprint visualizer (will be added in the future)
- Suggests shifts
- Visualizer canvas is drawn on