feat(FN-4108): persist scope override fields (+4 more)
Commits merged: - test(FN-4073): finalize invariant regression coverage - feat(FN-4073): complete Step 4 — document merge invariant - feat(FN-4073): complete Step 3 — enforce squash file-scope invariant - feat(FN-4073): complete Step 2 — add file-scope invariant helper - feat(FN-4073): complete Step 1 — persist scope override fields Files changed: .changeset/FN-4073-file-scope-invariant.md | 9 + AGENTS.md | 6 + packages/core/src/__tests__/store-update.test.ts | 18 ++ packages/core/src/db.ts | 2 + packages/core/src/store.ts | 34 +- packages/core/src/types.ts | 8 + .../__tests__/merger-file-scope-invariant.test.ts | 357 +++++++++++++++++++++ .../engine/src/__tests__/merger-test-helpers.ts | 5 + packages/engine/src/merger.ts | 155 ++++++++- 9 files changed, 582 insertions(+), 12 deletions(-) Fusion-Task-Id: FN-4108
This commit is contained in:
@@ -199,6 +199,24 @@ describe("TaskStore", () => {
|
||||
});
|
||||
|
||||
|
||||
describe("updateTask — scope override", () => {
|
||||
it("persists scopeOverride and scopeOverrideReason via updateTask", async () => {
|
||||
const task = await store.createTask({ title: "Scope override task", description: "A task" });
|
||||
|
||||
const updated = await store.updateTask(task.id, {
|
||||
scopeOverride: true,
|
||||
scopeOverrideReason: "hotfix",
|
||||
});
|
||||
|
||||
expect(updated.scopeOverride).toBe(true);
|
||||
expect(updated.scopeOverrideReason).toBe("hotfix");
|
||||
|
||||
const fetched = await store.getTask(task.id);
|
||||
expect(fetched.scopeOverride).toBe(true);
|
||||
expect(fetched.scopeOverrideReason).toBe("hotfix");
|
||||
});
|
||||
});
|
||||
|
||||
describe("updateTask — assigneeUserId", () => {
|
||||
it("sets assigneeUserId via updateTask", async () => {
|
||||
const task = await store.createTask({ title: "User task", description: "A task" });
|
||||
|
||||
Reference in New Issue
Block a user