Skip to content

Record one response set from a Jellyfin 10.11.11 server, scrubbed to the synthetic values - #506

Closed
iderex wants to merge 1 commit into
record/104-one-response-set-from-a-jellyfin-12-server-cfrom
record/88-one-response-set-from-a-jellyfin-10-11-server-b
Closed

iderex wants to merge 1 commit into
record/104-one-response-set-from-a-jellyfin-12-server-cfrom
record/88-one-response-set-from-a-jellyfin-10-11-server-b

Conversation

@iderex

@iderex iderex commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Contributes to #88. It does not close it: the gate leg that runs the suite against the oldest line's fixtures is what closes that issue, and this gives it the fixture set to run against. It is stacked on #505, the 12.0.0 set, which carries the -text rule and the byte assertion for tests/recorded/; this adds one directory and nothing else, and its base moves to main when that one lands. It replaces #504, closed because three code spans in the record named the image and the sibling directory the way the document-path check refuses; the files are the same.

What changed

tests/recorded/jellyfin-10.11.11/ holds the same sixteen calls as the 12.0.0 set, made by the same recorder in the same order with the same request bodies, against a jellyfin/jellyfin:10.11.11 server run for the purpose in a container on this machine over the same three generated videos, mounted read-only. The files are scrubbed by the same rule and sit in the same envelope, and RECORDED.md beside them refers to the 12.0.0 record for what each file shows, so the two cannot drift.

Read call for call against the 12.0.0 set, every status agrees and so does every top-level key of every JSON body. What differs below the top level is what the comparison reads, and this change does not pre-empt it.

The failure it prevents

The one #88 names: a request to an endpoint the older server does not have, or a response field that arrived in a later version, appearing at sign-in on somebody's real server rather than in the gate. A recording from a real server of the oldest supported line is what that leg compares against, and this is the recording.

Evidence

The scrub check over the tracked subject, run at this head before the commit:

$ bash .github/fixture-scrub/fixture-scrub.sh check
Every rule above was applied to its subject and refused nothing.

The two commands CONTRIBUTING.md names before a push were run in this worktree and are pasted in the first comment below.

What this does not cover

The gate leg itself, the comparison that reads these files, and the rule for a newer endpoint without the fallback from #10, which #88 lists as what it is blocked on. The raw recording never entered any tree.

Nobody other than me has read this change.

…the synthetic values (#88)

The oldest line the core claims to support gets its recording: the same sixteen
calls as tests/recorded/jellyfin-12.0.0/, made by the same recorder in the same
order with the same request bodies, against jellyfin/jellyfin:10.11.11 run for
the purpose over the same three generated videos mounted read-only, scrubbed by
the same rule and landing in the same envelope. RECORDED.md beside the files
says so and refers to the 12.0.0 record for what each file shows, so that the
two cannot drift.

READ CALL FOR CALL AGAINST THE 12.0.0 SET, every status agrees and so does every
top-level key of every JSON body. What differs below the top level is what the
comparison in #88 and #104 reads, and this change does not pre-empt it: #88 asks
for a gate leg that runs the suite against these files so that a dependency on
something the newer line offers reddens the pull request that introduced it,
and that leg is not here.

Twenty distinct identifiers, twelve naming a thing and eight digests; the
twelve got one synthetic value each and the eight took the remaining four, the
last five sharing the sixteenth, by the rule the 12.0.0 record states.

The check that judges these files refused nothing:

    bash .github/fixture-scrub/fixture-scrub.sh check
    Every rule above was applied to its subject and refused nothing.

Contributes to #88. It gives the leg its fixture set and does not build the leg.

Signed-off-by: iderex <30603423+iderex@users.noreply.github.com>
@iderex

iderex commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

At this head, whose code is byte-identical to #504 (three spans of RECORDED.md differ):

$ bash .github/doc-paths/doc-paths.sh check
Every path these documents name resolves against the tracked set.
$ bash .github/fixture-scrub/fixture-scrub.sh check
Every rule above was applied to its subject and refused nothing.
$ cargo test --locked
10 test result lines, every one of them ok, 0 failed
test rc=0

The two byte tests of tests/fixture_bytes.rs read both directories, thirty-two envelopes. Format, build and clippy ran clean at the head of #503 and no code moved since.

@iderex

iderex commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

Continued as #507, cut from main at the merge of #505: this pull request was stacked on the branch of #505 and was closed when that branch was deleted at the merge. The files are the same.

@iderex
iderex deleted the record/88-one-response-set-from-a-jellyfin-10-11-server-b branch September 18, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant