@rslsp1/fa-app-tools 10.1.3 → 10.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -117,6 +117,7 @@ async function seedSceneSetupUmgebung(store) {
117
117
  camera_rig: {
118
118
  cameras: cameraIds.map((camera_id) => ({
119
119
  camera_id,
120
+ aspect_ratio: "4:3",
120
121
  preset_ref: {
121
122
  element_id: presetElement.element_id,
122
123
  version_id: preset.version_id
@@ -885,6 +886,32 @@ function elementStoreContractChecks() {
885
886
  });
886
887
  kindIs(result, "error", "writeDraft auf unbekanntes Element");
887
888
  });
889
+ check("Veroeffentlichen", "verlangt ein explizites Kameraformat bei neuen oder geaenderten Kameras (#569)", async (store) => {
890
+ const setup = await seedSceneSetupUmgebung(store);
891
+ const missing = setup.payloadMit(["cam_a"]);
892
+ delete missing.camera_rig.cameras[0].aspect_ratio;
893
+ const rejected = await store.publishVersion({
894
+ elementId: setup.elementId,
895
+ payload: missing,
896
+ schemaVersion: "1.0.0",
897
+ publishedBy: "vertrag"
898
+ });
899
+ kindIs(rejected, "rejected", "neue Kamera ohne Format");
900
+ if (rejected.kind === "rejected") {
901
+ isTrue(rejected.errors.some((e) => e.instancePath === "/camera_rig/cameras/0/aspect_ratio"), "Ablehnung nennt Kameraformat");
902
+ }
903
+ hasLength((await snapshotOf(store, setup.elementId)).versions, 0, "kein Publish bei fehlendem Kameraformat");
904
+ const version = await seedVersion(store, setup.elementId, setup.payloadMit(["cam_a"]));
905
+ const result = await store.publishVersion({
906
+ elementId: setup.elementId,
907
+ payload: missing,
908
+ schemaVersion: "1.0.0",
909
+ publishedBy: "vertrag",
910
+ parents: [{ parent_version_id: version.version_id, relation: "derived_from" }]
911
+ });
912
+ kindIs(result, "rejected", "geaenderte Kamera verliert Format");
913
+ hasLength((await snapshotOf(store, setup.elementId)).versions, 1, "kein Publish beim Entfernen des Kameraformats");
914
+ });
888
915
  check("Veroeffentlichen", "veroeffentlicht eine gueltige Payload", async (store) => {
889
916
  const elementId = await seedElement(store);
890
917
  const version = await seedVersion(store, elementId);
@@ -1247,6 +1274,59 @@ function elementStoreContractChecks() {
1247
1274
  },
1248
1275
  "reviseMetadata"
1249
1276
  );
1277
+ check(
1278
+ "Elementmetadaten D-35",
1279
+ "setzt, behaelt und loescht das Titelbild (P6)",
1280
+ async (store) => {
1281
+ const element = ok(
1282
+ await store.createElement({ type: "scene", title: "A" }),
1283
+ "createElement"
1284
+ );
1285
+ equal(
1286
+ (await snapshotOf(store, element.element_id)).metadata?.cover_media_ref ?? null,
1287
+ null,
1288
+ "Titelbild nach Anlage"
1289
+ );
1290
+ ok(
1291
+ await store.reviseMetadata({
1292
+ elementId: element.element_id,
1293
+ title: "A",
1294
+ cover_media_ref: "bild-7",
1295
+ expectedRevision: 1
1296
+ }),
1297
+ "reviseMetadata mit cover_media_ref"
1298
+ );
1299
+ equal(
1300
+ (await snapshotOf(store, element.element_id)).metadata?.cover_media_ref,
1301
+ "bild-7",
1302
+ "Titelbild gesetzt"
1303
+ );
1304
+ ok(
1305
+ await store.reviseMetadata({ elementId: element.element_id, title: "B", expectedRevision: 2 }),
1306
+ "reviseMetadata ohne cover_media_ref"
1307
+ );
1308
+ equal(
1309
+ (await snapshotOf(store, element.element_id)).metadata?.cover_media_ref,
1310
+ "bild-7",
1311
+ "Titelbild behalten"
1312
+ );
1313
+ ok(
1314
+ await store.reviseMetadata({
1315
+ elementId: element.element_id,
1316
+ title: "B",
1317
+ cover_media_ref: null,
1318
+ expectedRevision: 3
1319
+ }),
1320
+ "reviseMetadata mit cover_media_ref null"
1321
+ );
1322
+ equal(
1323
+ (await snapshotOf(store, element.element_id)).metadata?.cover_media_ref ?? null,
1324
+ null,
1325
+ "Titelbild automatisch"
1326
+ );
1327
+ },
1328
+ "reviseMetadata"
1329
+ );
1250
1330
  check(
1251
1331
  "Elementmetadaten D-35",
1252
1332
  "lehnt eine veraltete Revision ab",