test: cover shared installer flow helpers

This commit is contained in:
Peter Steinberger
2026-02-22 18:36:36 +00:00
parent 07888bee34
commit 12635de1c7
6 changed files with 452 additions and 156 deletions

View File

@@ -0,0 +1,51 @@
import { describe, expect, it } from "vitest";
import {
resolveInstallModeOptions,
resolveTimedInstallModeOptions,
} from "./install-mode-options.js";
describe("install mode option helpers", () => {
it("applies logger, mode, and dryRun defaults", () => {
const logger = { warn: (_message: string) => {} };
const result = resolveInstallModeOptions({}, logger);
expect(result).toEqual({
logger,
mode: "install",
dryRun: false,
});
});
it("preserves explicit mode and dryRun values", () => {
const logger = { warn: (_message: string) => {} };
const result = resolveInstallModeOptions(
{
logger,
mode: "update",
dryRun: true,
},
{ warn: () => {} },
);
expect(result).toEqual({
logger,
mode: "update",
dryRun: true,
});
});
it("uses default timeout when not provided", () => {
const logger = { warn: (_message: string) => {} };
const result = resolveTimedInstallModeOptions({}, logger);
expect(result.timeoutMs).toBe(120_000);
expect(result.mode).toBe("install");
expect(result.dryRun).toBe(false);
});
it("honors custom timeout default override", () => {
const result = resolveTimedInstallModeOptions({}, { warn: () => {} }, 5000);
expect(result.timeoutMs).toBe(5000);
});
});