Upload files to "tests/mutator/npmoidc"
This commit is contained in:
@@ -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"]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user