test(02-12.1): prove the record-session fence end to end

- give every acceptance case a stable id and assert the mapping from a
  runnable artifact, recording which cases execute in the ordinary gate
  and which await the browser stage
- add the browser spec for the cases no cooperative layer can reach:
  peers reconciling to an exact context, an aborted switch response, a
  closed initiator, a delayed response, and the offline disk layers
This commit is contained in:
Marc-André Bombeck committed 2026-08-06 19:33:15 +02:00
1 parent 31b4857d8b
commit 8fcbdcc0df
4 files changed
+653 -4

No files matched your search

@@ -115,7 +115,7 @@ describe("what the browser asserts on a request", () => {
});
describe("what the browser does with an echoed context", () => {
it("serves a response carrying no echo, and enters no hold", () => {
it("FENCE-AC-06 serves a response carrying no echo, and enters no hold", () => {
// The `/api/version` case, named because it is the concrete thing a
// discard-on-absence rule breaks: it is polled on a timer.
adoptRecordFenceState({ epoch: 4, scope: OWNER });
@@ -137,7 +137,7 @@ describe("what the browser does with an echoed context", () => {
expect(hold).not.toHaveBeenCalled();
});
it("discards a response delayed across a switch, and enters the hold", () => {
it("FENCE-AC-06 discards a response delayed across a switch, and enters the hold", () => {
// Acceptance case 6: the response was already past the fence when the
// switch committed, so the server served it honestly under the old context
// and said so. The browser is on epoch 5 now.