Depends on #21 and on the publication pipeline.
Everything else in this plan tests the catalogue against its own idea of what a
Jellyfin server does. This is the one test that asks the server.
It matters because the failure it catches is the one nobody sees coming: a
manifest that is well-formed, passes every check here, and renders as an empty
repository on a real server because of a field the server reads differently than
expected. A target ABI that does not match, an identifier the server rejects, a
content type that makes it refuse the body, a version format it will not parse.
None of those are visible from this side.
It needs a running server and a network, so under #13 it lives in the
environment-bound harness and the merge gate never depends on it. The name should
say what it needs.
What it does: start a server, add the published address as a repository, assert
the catalogue lists what it should, install one plugin, and assert the server
reports it installed. The install step is the one that verifies the checksum, so
it is also the only place the artifact pairing rule is proven against something
other than a fixture.
Done when
The harness runs against a real server, adds the address, lists the catalogue and
installs a plugin, and fails when the manifest is deliberately given a mismatched
checksum. The merge gate passes with the harness entirely absent.
Machine-decidable.
Depends on #21 and on the publication pipeline.
Everything else in this plan tests the catalogue against its own idea of what a
Jellyfin server does. This is the one test that asks the server.
It matters because the failure it catches is the one nobody sees coming: a
manifest that is well-formed, passes every check here, and renders as an empty
repository on a real server because of a field the server reads differently than
expected. A target ABI that does not match, an identifier the server rejects, a
content type that makes it refuse the body, a version format it will not parse.
None of those are visible from this side.
It needs a running server and a network, so under #13 it lives in the
environment-bound harness and the merge gate never depends on it. The name should
say what it needs.
What it does: start a server, add the published address as a repository, assert
the catalogue lists what it should, install one plugin, and assert the server
reports it installed. The install step is the one that verifies the checksum, so
it is also the only place the artifact pairing rule is proven against something
other than a fixture.
Done when
The harness runs against a real server, adds the address, lists the catalogue and
installs a plugin, and fails when the manifest is deliberately given a mismatched
checksum. The merge gate passes with the harness entirely absent.
Machine-decidable.