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; 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: { function expectAllowAlwaysBypassBlocked(params: {
dir: string; dir: string;
firstCommand: string; firstCommand: string;
@ -26,19 +51,11 @@ describe("resolveAllowAlwaysPatterns", () => {
persistedPattern: string; persistedPattern: string;
}) { }) {
const safeBins = resolveSafeBins(undefined); const safeBins = resolveSafeBins(undefined);
const first = evaluateShellAllowlist({ const { persisted } = resolvePersistedPatterns({
command: params.firstCommand, command: params.firstCommand,
allowlist: [], dir: params.dir,
env: params.env,
safeBins, 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]); expect(persisted).toEqual([params.persistedPattern]);
@ -79,19 +96,11 @@ describe("resolveAllowAlwaysPatterns", () => {
env: Record<string, string | undefined>; env: Record<string, string | undefined>;
safeBins: ReturnType<typeof resolveSafeBins>; safeBins: ReturnType<typeof resolveSafeBins>;
}) { }) {
const first = evaluateShellAllowlist({ const { persisted } = resolvePersistedPatterns({
command: params.command, command: params.command,
allowlist: [], dir: params.dir,
env: params.env,
safeBins: params.safeBins, 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]); expect(persisted).toEqual([params.script]);