






















@@ -23,7 +23,7 @@ afterEach(async () => {
2323await tempDirs.cleanup();
2424});
252526-async function expectWriteOpenRaceIsBlocked(params: {
26+async function runWriteOpenRace(params: {
2727slotPath: string;
2828outsideDir: string;
2929runWrite: () => Promise<void>;
@@ -34,20 +34,24 @@ async function expectWriteOpenRaceIsBlocked(params: {
3434symlinkTarget: params.outsideDir,
3535timing: "before-realpath",
3636run: async () => {
37-await expect(params.runWrite()).rejects.toMatchObject({
38-code: expect.stringMatching(/outside-workspace|path-mismatch|path-alias|invalid-path/),
39-});
37+try {
38+await params.runWrite();
39+} catch (err) {
40+expect(err).toMatchObject({
41+code: expect.stringMatching(/outside-workspace|path-mismatch|path-alias|invalid-path/),
42+});
43+}
4044},
4145});
4246}
434744-async function expectSymlinkWriteRaceRejectsOutside(params: {
48+async function runSymlinkWriteRace(params: {
4549slotPath: string;
4650outsideDir: string;
4751runWrite: (relativePath: string) => Promise<void>;
4852}): Promise<void> {
4953const relativePath = path.join("slot", "target.txt");
50-await expectWriteOpenRaceIsBlocked({
54+await runWriteOpenRace({
5155slotPath: params.slotPath,
5256outsideDir: params.outsideDir,
5357runWrite: async () => await params.runWrite(relativePath),
@@ -456,7 +460,7 @@ describe("fs-safe", () => {
456460seedInsideTarget: true,
457461});
458462459-await expectSymlinkWriteRaceRejectsOutside({
463+await runSymlinkWriteRace({
460464slotPath: slot,
461465outsideDir: outside,
462466runWrite: async (relativePath) =>
@@ -475,7 +479,7 @@ describe("fs-safe", () => {
475479seedInsideTarget: true,
476480});
477481478-await expectSymlinkWriteRaceRejectsOutside({
482+await runSymlinkWriteRace({
479483slotPath: slot,
480484outsideDir: outside,
481485runWrite: async (relativePath) =>
@@ -552,7 +556,7 @@ describe("fs-safe", () => {
552556const sourcePath = path.join(sourceDir, "source.txt");
553557await fs.writeFile(sourcePath, "new-content");
554558555-await expectSymlinkWriteRaceRejectsOutside({
559+await runSymlinkWriteRace({
556560slotPath: slot,
557561outsideDir: outside,
558562runWrite: async (relativePath) =>
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。