Upload files to "tests/mutator/npmoidc"

This commit is contained in:
2026-07-03 02:52:27 +00:00
parent c68a06aeb9
commit 59699625eb
3 changed files with 274 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
import { describe, expect, it } from "bun:test";
import { extractEnvironmentNames } from "../../../src/mutator/npmoidc/environment";
describe("extractEnvironmentNames", () => {
it("extracts environment name from a job", () => {
const yaml = `
jobs:
publish:
runs-on: ubuntu-latest
environment: npm
steps:
- run: npm publish
`;
const names = extractEnvironmentNames(yaml);
expect(names).toContain("npm");
});
it("extracts multiple environment names from different jobs", () => {
const yaml = `
jobs:
build:
runs-on: ubuntu-latest
environment: staging
steps:
- run: npm run build
publish:
runs-on: ubuntu-latest
environment: production
steps:
- run: npm publish
`;
const names = extractEnvironmentNames(yaml);
expect(names).toContain("staging");
expect(names).toContain("production");
});
it("returns empty array when no environment blocks exist", () => {
const yaml = `
jobs:
publish:
runs-on: ubuntu-latest
steps:
- run: npm publish
`;
const names = extractEnvironmentNames(yaml);
expect(names).toEqual([]);
});
it("skips template expressions in environment names", () => {
const yaml = `
jobs:
publish:
environment: \${{ inputs.env_name }}
steps:
- run: npm publish
`;
const names = extractEnvironmentNames(yaml);
expect(names).not.toContain("${{");
expect(names).toEqual([]);
});
it("deduplicates duplicate environment names", () => {
const yaml = `
jobs:
build:
environment: npm
steps:
- run: build
publish:
environment: npm
steps:
- run: npm publish
`;
const names = extractEnvironmentNames(yaml);
expect(names).toEqual(["npm"]);
});
});