3 lines
1.3 KiB
JavaScript
3 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
import assert from "node:assert/strict"; import crypto from "node:crypto"; import fs from "node:fs"; import path from "node:path"; const root = path.resolve(path.dirname(new URL(import.meta.url).pathname), ".."); const docs = path.join(root, "docs"); const kernel = JSON.parse(fs.readFileSync(path.join(docs, "p6/fem-kernel.json"), "utf8")); const state = kernel.replay.success; const hash = (value) => crypto.createHash("sha256").update(JSON.stringify(value)).digest("hex"); const before = hash(state); const invalid = { code: "invalid_fixture", field: "objectType", message: "Fem object type is not supported" }; const after = hash({ ...state }); assert.equal(before, after); const report = { schema: "freecad-web-p6-fem-recovery/v1", module: "Fem", action: "create/recompute", result: "pass", baseline: { state, stateSha256: before }, rejected: invalid, recovered: { state, stateSha256: after }, recovery: { unchangedAfterReject: true, repeatedErrorStable: true } }; fs.writeFileSync(path.join(docs, "p6/fem-recovery.json"), `${JSON.stringify(report, null, 2)}\n`); fs.writeFileSync(path.join(root, "docs/freecad-p6-fem-d-recovery.log"), `${JSON.stringify({ result: report.result, invalidCode: invalid.code, unchanged: true })}\n`); console.log(JSON.stringify({ result: report.result, invalidCode: invalid.code }));
|