import assert from "node:assert/strict"; import { readFile, writeFile } from "node:fs/promises"; import { DocxEditor } from "@docx-editor.dev/editor-api"; const redlined = await readFile("contract.redlined.docx"); for (const action of ["accept", "reject"]) { const review = await DocxEditor.createServer(redlined); let output; try { await review.run(async (context) => { const revisions = context.document.revisions; revisions.load("items"); await context.sync(); assert(revisions.items.length > 0, "Expected pending changes"); const result = revisions.resolve(action, revisions.items); await context.sync(); assert.equal(result.value.skipped.length, 0); assert.equal(result.value.remaining, 0); }); output = await review.save(); } finally { review.dispose(); } const reopened = await DocxEditor.createServer(output); try { await reopened.run(async (context) => { const body = context.document.body; body.load("text"); context.document.revisions.load("items"); await context.sync(); const expected = action === "accept" ? "within 30 days" : "within 7 days"; assert(body.text.includes(expected)); assert(body.text.includes("within 14 days")); assert.equal(context.document.revisions.items.length, 0); }); await writeFile(`contract.${action}.docx`, output); } finally { reopened.dispose(); } } console.log("Both saved review outcomes passed.");