fix: enforce approved media publication closure

This commit is contained in:
2026-09-02 08:15:00 +03:00
parent a1520f2783
commit 5edddb8781
6 changed files with 283 additions and 31 deletions

View File

@@ -147,6 +147,18 @@ describe('content schemas', () => {
.toThrow(/unmanifested asset/i);
});
it('requires duplicate-free set equality between content references and manifest assets', () => {
const duplicateReference = cloneContent();
duplicateReference.projects.selected[1]!.assetIds = ['selected-build-one'];
expect(() => validateProductionInputs(duplicateReference, validManifest, validSite, new URL('file:///prepared/')))
.toThrow(/duplicate public asset reference/i);
const unreferencedManifestAsset = cloneContent();
unreferencedManifestAsset.projects.selected[0]!.assetIds = [];
expect(() => validateProductionInputs(unreferencedManifestAsset, validManifest, validSite, new URL('file:///prepared/')))
.toThrow(/unreferenced manifest asset/i);
});
it('rejects duplicate manifest asset IDs and unsafe generated filenames', () => {
const manifest = structuredClone(validManifest) as { assets: Array<{ id: string; fileName: string }> };
manifest.assets[1]!.id = manifest.assets[0]!.id;