tidy the integration harness and its comments

Trim the explanatory comments to short quirk notes, drop the module headers, and fail cleanly: navidrome/gonic now kill their process if they never become ready and the entrypoint always tears down. The prune test waits for the removal to appear in the album list rather than for the scan flag. Correct the AGENTS token-auth note (lms answers 42, Nextcloud 41) and give CI more headroom.
This commit is contained in:
austinried
2026-10-04 00:30:05 +00:00
parent f79f26fed8
commit 592c522244
8 changed files with 39 additions and 55 deletions
+4 -11
View File
@@ -1,21 +1,14 @@
# Thin Subsonic API client used to inspect and prepare the test servers.
# Nextcloud's Music app reads repeated (array) parameters straight from the raw query string
# without URL-decoding them, so ids must be sent with their unreserved characters intact.
export def url-escape [value: string] {
# Nextcloud reads repeated (array) params from the raw query string without URL-decoding, so ids
# must keep their unreserved characters.
def url-escape [value: string] {
$value
| url encode
| str replace --all '%2D' '-'
| str replace --all '%2d' '-'
| str replace --all '%2E' '.'
| str replace --all '%2e' '.'
| str replace --all '%5F' '_'
| str replace --all '%5f' '_'
| str replace --all '%7E' '~'
| str replace --all '%7e' '~'
}
export def sub-url [base: string, user: string, pass: string, method: string, params: list<any>] {
def sub-url [base: string, user: string, pass: string, method: string, params: list<any>] {
let all = ([["u" $user] ["p" $pass] ["v" "1.16.1"] ["c" "subtracks-test"] ["f" "json"]] | append $params)
let query = ($all | each {|p| $"($p.0)=(url-escape ($p.1 | into string))" } | str join "&")
$"($base)rest/($method).view?($query)"