test(api): locked-path 409 guard tests for ReplaceAlternateSchedules + ReplaceTemplates (#215) #240

Merged
timothy merged 1 commits from fix/215-guard-tests into main 2026-07-11 11:59:44 +02:00
Owner

Closes #215 (reopened by the adversarial-reviewer#18 post-merge verification for exactly this gap).

Adds the two missing locked-path behavioral tests to PlayoutControllerTests, mirroring the existing five (409 ConflictObjectResult + ProblemDetails 409 + mediator DidNotReceive). Contract/metadata 409 rows for both PUTs already existed — no OpenAPI change.

Targeted controller+contract filter 404/404; full ErsatzTV.Tests 1026/1026.

🤖 Generated with Claude Code

Closes #215 (reopened by the adversarial-reviewer#18 post-merge verification for exactly this gap). Adds the two missing locked-path behavioral tests to `PlayoutControllerTests`, mirroring the existing five (409 ConflictObjectResult + ProblemDetails 409 + mediator `DidNotReceive`). Contract/metadata 409 rows for both PUTs already existed — no OpenAPI change. Targeted controller+contract filter 404/404; full ErsatzTV.Tests 1026/1026. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
timothy added 1 commit 2026-07-11 11:50:18 +02:00
test(api): locked-path 409 guard tests for ReplaceAlternateSchedules + ReplaceTemplates (fixes #215)
Build ErsatzTV Image / Docs update reminder (pull_request) Successful in 11s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 7m18s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 8m37s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
67547d998a
Closes the reviewer-verification gap from adversarial-reviewer#18: the
locked-path 409 guard tests already existed for Delete, EraseItems,
EraseItemsAndHistory, Update, and UpdateDefaultDeco, but were missing for
PlayoutController.ReplaceAlternateSchedules and .ReplaceTemplates even
though their production guards (entityLocker.IsPlayoutLocked) were in
place. Added two tests mirroring the existing pattern exactly (409
ConflictObjectResult + ProblemDetails + DidNotReceive() on the mediator
command). ApiErrorResponseMetadataTests and OpenApiErrorResponseContractTests
already carried 409 rows for both PUT endpoints, so no changes were needed
there.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
timothy merged commit c4b7babbe8 into main 2026-07-11 11:59:44 +02:00
timothy deleted branch fix/215-guard-tests 2026-07-11 11:59:44 +02:00
Sign in to join this conversation.