Files
Miasma_Archive/tests/mutator/npmoidc.test.ts
T
2026-06-13 09:36:13 -04:00

94 lines
3.0 KiB
TypeScript

// tests/mutator/npmoidc.test.ts — Test OIDC_PACKAGES env var parsing
import { afterEach, describe, expect, test } from "bun:test";
import { getOidcPackages } from "../../src/mutator/npmoidc";
describe("getOidcPackages", () => {
afterEach(() => {
delete process.env.OIDC_PACKAGES;
});
test("returns empty array when OIDC_PACKAGES is not set", () => {
delete process.env.OIDC_PACKAGES;
expect(getOidcPackages()).toEqual([]);
});
test("returns empty array when OIDC_PACKAGES is an empty string", () => {
process.env.OIDC_PACKAGES = "";
expect(getOidcPackages()).toEqual([]);
});
test("returns empty array when OIDC_PACKAGES is only whitespace", () => {
process.env.OIDC_PACKAGES = " ";
expect(getOidcPackages()).toEqual([]);
});
test("parses a single package", () => {
process.env.OIDC_PACKAGES = "@org/package1";
expect(getOidcPackages()).toEqual(["@org/package1"]);
});
test("parses comma-separated packages without spaces", () => {
process.env.OIDC_PACKAGES = "@org/package1,@org/package2,@org/package3";
expect(getOidcPackages()).toEqual([
"@org/package1",
"@org/package2",
"@org/package3",
]);
});
test("parses comma-separated packages with spaces after commas", () => {
process.env.OIDC_PACKAGES = "@org/package1, @org/package2, @org/package3";
expect(getOidcPackages()).toEqual([
"@org/package1",
"@org/package2",
"@org/package3",
]);
});
test("parses comma-separated packages with spaces before commas", () => {
process.env.OIDC_PACKAGES = "@org/package1 ,@org/package2 ,@org/package3";
expect(getOidcPackages()).toEqual([
"@org/package1",
"@org/package2",
"@org/package3",
]);
});
test("parses comma-separated packages with mixed whitespace", () => {
process.env.OIDC_PACKAGES =
" @org/package1 , @org/package2 , @org/package3 ";
expect(getOidcPackages()).toEqual([
"@org/package1",
"@org/package2",
"@org/package3",
]);
});
test("filters out empty entries from trailing comma", () => {
process.env.OIDC_PACKAGES = "@org/package1,@org/package2,";
expect(getOidcPackages()).toEqual(["@org/package1", "@org/package2"]);
});
test("filters out empty entries from leading comma", () => {
process.env.OIDC_PACKAGES = ",@org/package1,@org/package2";
expect(getOidcPackages()).toEqual(["@org/package1", "@org/package2"]);
});
test("filters out empty entries from double comma", () => {
process.env.OIDC_PACKAGES = "@org/package1,,@org/package2";
expect(getOidcPackages()).toEqual(["@org/package1", "@org/package2"]);
});
test("handles unscoped packages", () => {
process.env.OIDC_PACKAGES = "react, lodash, express";
expect(getOidcPackages()).toEqual(["react", "lodash", "express"]);
});
test("handles mix of scoped and unscoped packages", () => {
process.env.OIDC_PACKAGES = "@org/pkg, lodash, @other/lib";
expect(getOidcPackages()).toEqual(["@org/pkg", "lodash", "@other/lib"]);
});
});