test: tighten shared requirements coverage

This commit is contained in:
Peter Steinberger 2026-03-13 21:55:33 +00:00
parent a9d8518e7c
commit 25e900f64a
1 changed files with 35 additions and 0 deletions

View File

@ -22,6 +22,12 @@ describe("requirements helpers", () => {
});
it("resolveMissingAnyBins requires at least one", () => {
expect(
resolveMissingAnyBins({
required: [],
hasLocalBin: () => false,
}),
).toEqual([]);
expect(
resolveMissingAnyBins({
required: ["a", "b"],
@ -38,6 +44,8 @@ describe("requirements helpers", () => {
});
it("resolveMissingOs allows remote platform", () => {
expect(resolveMissingOs({ required: [], localPlatform: "linux" })).toEqual([]);
expect(resolveMissingOs({ required: ["linux"], localPlatform: "linux" })).toEqual([]);
expect(
resolveMissingOs({
required: ["darwin"],
@ -164,4 +172,31 @@ describe("requirements helpers", () => {
expect(res.missing).toEqual({ bins: [], anyBins: [], env: [], config: [], os: [] });
expect(res.eligible).toBe(true);
});
it("evaluateRequirementsFromMetadata defaults missing metadata to empty requirements", () => {
const res = evaluateRequirementsFromMetadata({
always: false,
hasLocalBin: () => false,
localPlatform: "linux",
isEnvSatisfied: () => false,
isConfigSatisfied: () => false,
});
expect(res.required).toEqual({
bins: [],
anyBins: [],
env: [],
config: [],
os: [],
});
expect(res.missing).toEqual({
bins: [],
anyBins: [],
env: [],
config: [],
os: [],
});
expect(res.configChecks).toEqual([]);
expect(res.eligible).toBe(true);
});
});