






















@@ -12,6 +12,14 @@ import {
1212withTempDir,
1313} from "./fs-bridge.test-helpers.js";
141415+function expectNoScriptsContaining(scripts: string[], needle: string) {
16+expect(scripts.filter((script) => script.includes(needle))).toEqual([]);
17+}
18+19+function expectSomeScriptContaining(scripts: string[], needle: string) {
20+expect(scripts.filter((script) => script.includes(needle)).length).toBeGreaterThan(0);
21+}
22+1523describe("sandbox fs bridge shell compatibility", () => {
1624installFsBridgeTestHarness();
1725@@ -41,9 +49,9 @@ describe("sandbox fs bridge shell compatibility", () => {
4149const scripts = getScriptsFromCalls();
4250const executables = mockedExecDockerRaw.mock.calls.map(([args]) => args[3] ?? "");
435144-expect(executables.every((shell) => shell === "sh")).toBe(true);
45-expect(scripts.every((script) => /set -eu[;\n]/.test(script))).toBe(true);
46-expect(scripts.some((script) => script.includes("pipefail"))).toBe(false);
52+expect(executables.filter((shell) => shell !== "sh")).toEqual([]);
53+expect(scripts.filter((script) => !/set -eu[;\n]/.test(script))).toEqual([]);
54+expectNoScriptsContaining(scripts, "pipefail");
4755});
4856});
4957@@ -131,13 +139,11 @@ describe("sandbox fs bridge shell compatibility", () => {
131139await bridge.writeFile({ filePath: "b.txt", data: "hello" });
132140133141const scripts = getScriptsFromCalls();
134-expect(scripts.some((script) => script.includes("python3 - \"$@\" <<'PY'"))).toBe(false);
135-expect(
136-scripts.some((script) => script.includes('exec "$python_cmd" -c "$python_script" "$@"')),
137-).toBe(true);
138-expect(scripts.some((script) => script.includes('cat >"$1"'))).toBe(false);
139-expect(scripts.some((script) => script.includes('cat >"$tmp"'))).toBe(false);
140-expect(scripts.some((script) => script.includes("os.replace("))).toBe(true);
142+expectNoScriptsContaining(scripts, "python3 - \"$@\" <<'PY'");
143+expectSomeScriptContaining(scripts, 'exec "$python_cmd" -c "$python_script" "$@"');
144+expectNoScriptsContaining(scripts, 'cat >"$1"');
145+expectNoScriptsContaining(scripts, 'cat >"$tmp"');
146+expectSomeScriptContaining(scripts, "os.replace(");
141147});
142148143149it("routes mkdirp, remove, and rename through the pinned mutation helper", async () => {
@@ -152,9 +158,9 @@ describe("sandbox fs bridge shell compatibility", () => {
152158153159const scripts = getScriptsFromCalls();
154160expect(scripts.filter((script) => script.includes("operation = sys.argv[1]")).length).toBe(3);
155-expect(scripts.some((script) => script.includes('mkdir -p -- "$2"'))).toBe(false);
156-expect(scripts.some((script) => script.includes('rm -f -- "$2"'))).toBe(false);
157-expect(scripts.some((script) => script.includes('mv -- "$3" "$2/$4"'))).toBe(false);
161+expectNoScriptsContaining(scripts, 'mkdir -p -- "$2"');
162+expectNoScriptsContaining(scripts, 'rm -f -- "$2"');
163+expectNoScriptsContaining(scripts, 'mv -- "$3" "$2/$4"');
158164});
159165});
160166@@ -173,6 +179,6 @@ describe("sandbox fs bridge shell compatibility", () => {
173179);
174180175181const scripts = getScriptsFromCalls();
176-expect(scripts.some((script) => script.includes("os.replace("))).toBe(false);
182+expectNoScriptsContaining(scripts, "os.replace(");
177183});
178184});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。