test(remote): add unit + e2e suite for remote-services subsystem

Covers RemoteClient/RemoteService, REST routes, handlers, SessionStore, InputBridge, DownloadQueueManager, errors, compression, and serve CLI. E2e tier opts in via --live and can auto-spawn its own serve.
This commit is contained in:
imSp4rky
2026-05-21 10:45:25 -06:00
parent 9c905ef7a3
commit 746b573711
29 changed files with 2541 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
# tests/remote/e2e/fixtures/fixtures-example.yaml
#
# Copy this file to `fixtures.yaml` in the same directory and fill in
# service-specific scenarios for the services you have access to.
# `fixtures.yaml` is .gitignored so your private IDs / queries stay local.
#
# Each entry under `services:` is keyed by the service TAG used by
# unshackle (matches the service directory name, e.g. EXAMPLE). The keys
# below are read by the e2e tests:
#
# title_url (required) — movie URL/slug/ID accepted by the service
# series_url (optional) — series URL/slug/ID; when set, the
# quality + license + download tests
# target target_season/target_episode
# instead of the movie
# target_season (optional, default 1)
# target_episode (optional, default 1)
# search_query (optional) — string to send to /api/search
# requires_auth (optional, default true) — informational
# server_cdm (optional, default false) — informational
# drm (optional) — informational ("widevine" / "playready")
#
# expected_quality (optional) — when present, the quality test
# asserts these limits against the
# discovered video tracks
# min_height (optional) — max video.height >= this
# min_codecs (optional) — codec names that must be present
# (AVC, HEVC, VC1, VP8, VP9, AV1)
# min_ranges (optional) — range names that must be present
# (SDR, HDR10, HDR10P, DV, HLG, HYBRID)
# min_track_count (optional) — at least this many video tracks
#
# runs_download_test (optional, default false) — when true, the
# download smoke test
# runs for this service
# runs_license_test (optional, default false) — when true, the
# license test runs for
# this service
# license_drm (optional, default "widevine") — DRM type the
# license test
# requests ("widevine"
# or "playready")
# license_quality (optional, default 1080) — pixel height of the
# track the license test
# targets
services:
EXAMPLE:
title_url: "https://example.com/movie/example-movie-id"
series_url: "https://example.com/series/example-series-id"
target_season: 1
target_episode: 1
search_query: "example"
requires_auth: true
server_cdm: false
drm: widevine
expected_quality:
min_height: 1080
min_codecs: [AVC]
min_ranges: [SDR]
min_track_count: 4
runs_download_test: true
runs_license_test: false
license_drm: widevine
license_quality: 1080