Initial commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
// 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"]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user