feat(FN-4400): complete Step 2 — add heartbeat prompt template settings

Fusion-Task-Id: FN-4400
Fusion-Task-Lineage: 0d4f9c48-5b8b-49eb-9cf3-d1d585ffe7fc
This commit is contained in:
Fusion
2026-05-14 03:36:31 -07:00
committed by gsxdsm
parent 232a4dcfa5
commit 772fdb94b1
6 changed files with 48 additions and 1 deletions

View File

@@ -95,6 +95,12 @@ describe("settings key parity", () => {
expect(isGlobalSettingsKey("heartbeatScopeDiscipline")).toBe(false);
});
it("keeps heartbeatPromptTemplate project-scoped with default default", () => {
expect(DEFAULT_PROJECT_SETTINGS.heartbeatPromptTemplate).toBe("default");
expect(isProjectSettingsKey("heartbeatPromptTemplate")).toBe(true);
expect(isGlobalSettingsKey("heartbeatPromptTemplate")).toBe(false);
});
it("documents autoClaimCandidatesInPrompt expected integer range", () => {
const inRange = [0, 1, 5, 10];
const outOfRange = [-1, 11, 100];

View File

@@ -3,6 +3,7 @@ import {
validateDirectMergeCommitStrategy,
validateGithubAuthMode,
validateGithubRepoSlug,
validateHeartbeatPromptTemplate,
validateHeartbeatScopeDisciplineMode,
validateUnavailableNodePolicy,
} from "../settings-validation.js";
@@ -62,6 +63,19 @@ describe("settings-validation", () => {
});
});
describe("validateHeartbeatPromptTemplate", () => {
it("accepts supported templates", () => {
expect(validateHeartbeatPromptTemplate("default")).toBe("default");
expect(validateHeartbeatPromptTemplate("compact")).toBe("compact");
});
it("returns undefined for invalid values", () => {
expect(validateHeartbeatPromptTemplate("tiny")).toBeUndefined();
expect(validateHeartbeatPromptTemplate(123)).toBeUndefined();
expect(validateHeartbeatPromptTemplate(undefined)).toBeUndefined();
});
});
describe("validateGithubRepoSlug", () => {
it("accepts valid owner/repo slugs", () => {
expect(validateGithubRepoSlug("owner/repo")).toBe("owner/repo");