rea/tests/evaluation/package/packageSetupSupport.test.ts

57 lines
1.7 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { packageSetupSupport } from "../../../scripts/verify-package-discovery.mjs";
describe("packaged setup support classification", () => {
it.each([
["linux", true, true, true, true],
["linux", true, false, true, false],
["linux", false, true, false, false],
["linux", false, false, false, false],
["darwin", true, true, true, true],
["darwin", true, false, true, false],
["darwin", false, true, false, false],
["darwin", false, false, false, false],
["win32", true, true, true, false],
["win32", true, false, true, false],
["win32", false, true, false, false],
["win32", false, false, false, false],
] as const)(
"%s with node=%s and host=%s: agent setup=%s, Hopper setup=%s",
(platform, node, host, supportedSetupHost, hopperSetupSupported) => {
expect(
packageSetupSupport(
[
{ name: "host", ok: host },
{ name: "node", ok: node },
],
platform,
),
).toEqual({ supportedSetupHost, hopperSetupSupported });
},
);
it.each([
{ checks: undefined },
{ checks: [] },
{ checks: [{ name: "host", ok: true }] },
])("requires an affirmative Node check: $checks", ({ checks }) => {
expect(packageSetupSupport(checks, "linux")).toEqual({
supportedSetupHost: false,
hopperSetupSupported: false,
});
});
it("requires an affirmative host check only for Hopper setup", () => {
expect(
packageSetupSupport(
[
{ name: "node", ok: true },
{ name: "hopper", ok: true },
],
"linux",
),
).toEqual({ supportedSetupHost: true, hopperSetupSupported: false });
});
});