test(FN-4715): complete Step 2 — add default invariant regressions
Fusion-Task-Id: FN-4715 Fusion-Task-Lineage: b1c3393f-2596-4b3f-a8fb-c9838bf6c985
This commit is contained in:
committed by
gsxdsm
parent
b3fce6dda8
commit
4e4fad5c88
28
packages/core/src/__tests__/settings-defaults.test.ts
Normal file
28
packages/core/src/__tests__/settings-defaults.test.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import { DEFAULT_GLOBAL_SETTINGS, DEFAULT_PROJECT_SETTINGS } from "../settings-schema.js";
|
||||||
|
import { resolveWorktrunkSettings, validateWorktrunkSettings } from "../worktrunk-settings.js";
|
||||||
|
|
||||||
|
describe("settings defaults invariants", () => {
|
||||||
|
it("keeps worktrunk default off in global and project defaults", () => {
|
||||||
|
expect(DEFAULT_GLOBAL_SETTINGS.worktrunk.enabled).toBe(false);
|
||||||
|
expect(DEFAULT_PROJECT_SETTINGS.worktrunk.enabled).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps project worktreesDir unset by default", () => {
|
||||||
|
expect(DEFAULT_PROJECT_SETTINGS.worktreesDir).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resolves worktrunk as disabled when both scopes are unset or empty", () => {
|
||||||
|
expect(resolveWorktrunkSettings(undefined, undefined).enabled).toBe(false);
|
||||||
|
expect(resolveWorktrunkSettings({}, {}).enabled).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("preserves explicit false overrides for worktrunk enabled", () => {
|
||||||
|
expect(resolveWorktrunkSettings({ enabled: false }, undefined).enabled).toBe(false);
|
||||||
|
expect(resolveWorktrunkSettings(undefined, { enabled: false }).enabled).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not implicitly enable worktrunk when validating undefined", () => {
|
||||||
|
expect(validateWorktrunkSettings(undefined)).toEqual({});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -15,6 +15,10 @@ describe("worktree-paths", () => {
|
|||||||
expect(resolveWorktreesDir(rootDir, undefined)).toBe(join(rootDir, ".worktrees"));
|
expect(resolveWorktreesDir(rootDir, undefined)).toBe(join(rootDir, ".worktrees"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("defaults to <rootDir>/.worktrees when settings object is present but worktreesDir is unset", () => {
|
||||||
|
expect(resolveWorktreesDir(rootDir, {} as any)).toBe(join(rootDir, ".worktrees"));
|
||||||
|
});
|
||||||
|
|
||||||
it("supports absolute path", () => {
|
it("supports absolute path", () => {
|
||||||
expect(resolveWorktreesDir(rootDir, { worktreesDir: "/var/tmp/fn-worktrees" } as any)).toBe("/var/tmp/fn-worktrees");
|
expect(resolveWorktreesDir(rootDir, { worktreesDir: "/var/tmp/fn-worktrees" } as any)).toBe("/var/tmp/fn-worktrees");
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user