83 lines
3.5 KiB
JavaScript
83 lines
3.5 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import crypto from "node:crypto";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
|
const read = (relativePath) => fs.readFileSync(path.join(root, relativePath));
|
|
const sha256 = (value) => crypto.createHash("sha256").update(value).digest("hex");
|
|
const manifest = JSON.parse(read("tests/golden/M12-03E/manifest.json"));
|
|
const desktopReport = JSON.parse(read("tests/golden/M12-03C/desktop-append-report.json"));
|
|
|
|
assert.deepEqual(manifest, {
|
|
schemaVersion: 1,
|
|
task: "M12-03E",
|
|
parentTask: "M12-03D",
|
|
enablingTask: false,
|
|
parityStateChange: false,
|
|
runtime: "BLENDER_5_2_WASM_CHROMIUM",
|
|
operation: "APPEND",
|
|
canonicalComparison: "DESKTOP_REPORT_EXACT_AFTER_IMAGE_ROW_NORMALIZATION_AND_SCENEIR_COLORSPACE_DEFAULT",
|
|
assertions: {
|
|
transactionCount: 1,
|
|
revisionDelta: 1,
|
|
undoRemovesClosure: true,
|
|
redoRestoresCanonical: true,
|
|
saveReopenRestoresCanonical: true,
|
|
},
|
|
artifacts: {
|
|
parentManifest: {
|
|
path: "tests/golden/M12-03C/manifest.json",
|
|
sha256: "cbfbd8c919125108334dd24925b9ef8e69880983515e56841e6ead4a2b182aed",
|
|
},
|
|
desktopReport: {
|
|
path: "tests/golden/M12-03C/desktop-append-report.json",
|
|
sha256: "b1d7b8b9e832d18d69081f63981062800e0f00f0c9aec025b18274510ed76e2a",
|
|
},
|
|
test: {
|
|
path: "web/tests/e2e/library-append-main.spec.ts",
|
|
sha256: "101f67d35c2320da57459f08a59687d769234b910dbd9aaec5a668cee7e0f9f0",
|
|
},
|
|
sourceBlend: {
|
|
path: "tests/files/web/m12_library_append_v1/m12_append_source.blend",
|
|
sha256: "5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606",
|
|
},
|
|
targetBlend: {
|
|
path: "tests/files/web/empty.blend",
|
|
sha256: "9b1ecbcc3d7f8079ee5469de64193ffcaa0a7b01e0f2ac340bbb18aa88734a63",
|
|
},
|
|
},
|
|
nextTask: "M12-03F",
|
|
});
|
|
|
|
assert.equal(sha256(read(manifest.artifacts.parentManifest.path)), manifest.artifacts.parentManifest.sha256);
|
|
assert.equal(sha256(read(manifest.artifacts.desktopReport.path)), manifest.artifacts.desktopReport.sha256);
|
|
assert.equal(sha256(read(manifest.artifacts.sourceBlend.path)), manifest.artifacts.sourceBlend.sha256);
|
|
assert.equal(sha256(read(manifest.artifacts.targetBlend.path)), manifest.artifacts.targetBlend.sha256);
|
|
assert.equal(sha256(read(manifest.artifacts.test.path)), manifest.artifacts.test.sha256);
|
|
assert.equal(desktopReport.task, "M12-03C");
|
|
assert.equal(desktopReport.operation, "APPEND");
|
|
assert.equal(desktopReport.appendedGraph.geometry.vertices, 4);
|
|
assert.equal(desktopReport.appendedGraph.geometry.edges, 4);
|
|
assert.equal(desktopReport.appendedGraph.geometry.polygons, 1);
|
|
assert.equal(desktopReport.appendedGraph.geometry.loops, 4);
|
|
assert.equal(desktopReport.appendedGraph.image.pixelFloat32Sha256.length, 64);
|
|
|
|
const source = read(manifest.artifacts.test.path).toString("utf8");
|
|
for (const marker of [
|
|
"M12-03E keeps append undo/redo/save/reopen",
|
|
"desktop-append-report.json",
|
|
"canonicalGraph",
|
|
"client.applyCommand({ type: \"undo\" })",
|
|
"client.applyCommand({ type: \"redo\" })",
|
|
"client.saveBlend()",
|
|
"reopenedCanonical",
|
|
"desktopCanonical",
|
|
]) assert.ok(source.includes(marker), `M12-03E test marker is missing: ${marker}`);
|
|
|
|
process.stdout.write(
|
|
`library-main-append-check-ok canonical=${desktopReport.appendedGraph.image.pixelFloat32Sha256} ` +
|
|
`transaction=${manifest.assertions.transactionCount} undo=removed redo=canonical reopen=canonical next=${manifest.nextTask}\n`,
|
|
);
|