refactor: share allow-always test helpers

This commit is contained in:
Peter Steinberger 2026-03-13 20:12:12 +00:00
parent 2dd180472f
commit 420b0672e4
1 changed files with 31 additions and 22 deletions

View File

@ -18,6 +18,31 @@ describe("resolveAllowAlwaysPatterns", () => {
return exe;
}
function resolvePersistedPatterns(params: {
command: string;
dir: string;
env: Record<string, string | undefined>;
safeBins: ReturnType<typeof resolveSafeBins>;
}) {
const analysis = evaluateShellAllowlist({
command: params.command,
allowlist: [],
safeBins: params.safeBins,
cwd: params.dir,
env: params.env,
platform: process.platform,
});
return {
analysis,
persisted: resolveAllowAlwaysPatterns({
segments: analysis.segments,
cwd: params.dir,
env: params.env,
platform: process.platform,
}),
};
}
function expectAllowAlwaysBypassBlocked(params: {
dir: string;
firstCommand: string;
@ -26,19 +51,11 @@ describe("resolveAllowAlwaysPatterns", () => {
persistedPattern: string;
}) {
const safeBins = resolveSafeBins(undefined);
const first = evaluateShellAllowlist({
const { persisted } = resolvePersistedPatterns({
command: params.firstCommand,
allowlist: [],
dir: params.dir,
env: params.env,
safeBins,
cwd: params.dir,
env: params.env,
platform: process.platform,
});
const persisted = resolveAllowAlwaysPatterns({
segments: first.segments,
cwd: params.dir,
env: params.env,
platform: process.platform,
});
expect(persisted).toEqual([params.persistedPattern]);
@ -79,19 +96,11 @@ describe("resolveAllowAlwaysPatterns", () => {
env: Record<string, string | undefined>;
safeBins: ReturnType<typeof resolveSafeBins>;
}) {
const first = evaluateShellAllowlist({
const { persisted } = resolvePersistedPatterns({
command: params.command,
allowlist: [],
dir: params.dir,
env: params.env,
safeBins: params.safeBins,
cwd: params.dir,
env: params.env,
platform: process.platform,
});
const persisted = resolveAllowAlwaysPatterns({
segments: first.segments,
cwd: params.dir,
env: params.env,
platform: process.platform,
});
expect(persisted).toEqual([params.script]);