Spaces:
Paused
Paused
| import { describe, expect, it } from "vitest"; | |
| import { | |
| resolveIssueGoalId, | |
| resolveNextIssueGoalId, | |
| } from "../services/issue-goal-fallback.ts"; | |
| describe("issue goal fallback", () => { | |
| it("assigns the company goal when creating an issue without project or goal", () => { | |
| expect( | |
| resolveIssueGoalId({ | |
| projectId: null, | |
| goalId: null, | |
| defaultGoalId: "goal-1", | |
| }), | |
| ).toBe("goal-1"); | |
| }); | |
| it("keeps an explicit goal when creating an issue", () => { | |
| expect( | |
| resolveIssueGoalId({ | |
| projectId: null, | |
| goalId: "goal-2", | |
| defaultGoalId: "goal-1", | |
| }), | |
| ).toBe("goal-2"); | |
| }); | |
| it("does not force a company goal when the issue belongs to a project", () => { | |
| expect( | |
| resolveIssueGoalId({ | |
| projectId: "project-1", | |
| goalId: null, | |
| defaultGoalId: "goal-1", | |
| }), | |
| ).toBeNull(); | |
| }); | |
| it("backfills the company goal on update for legacy no-project issues", () => { | |
| expect( | |
| resolveNextIssueGoalId({ | |
| currentProjectId: null, | |
| currentGoalId: null, | |
| defaultGoalId: "goal-1", | |
| }), | |
| ).toBe("goal-1"); | |
| }); | |
| it("clears the fallback when a project is added later", () => { | |
| expect( | |
| resolveNextIssueGoalId({ | |
| currentProjectId: null, | |
| currentGoalId: "goal-1", | |
| projectId: "project-1", | |
| goalId: null, | |
| defaultGoalId: "goal-1", | |
| }), | |
| ).toBeNull(); | |
| }); | |
| }); | |