53 lines · 1.7 KB · TypeScript
RawDownload
import { describe, expect, test } from "vitest";import {  isExpectedSnapshotRaceError,  isFileNotFoundError,} from "../src/fs-errors.ts"; function errnoError(code: string): NodeJS.ErrnoException {  const error = new Error(code) as NodeJS.ErrnoException;  error.code = code;  return error;} describe("isFileNotFoundError", () => {  test("is true for an ENOENT error", () => {    expect(isFileNotFoundError(errnoError("ENOENT"))).toBe(true);  });   test("is false for other error codes", () => {    expect(isFileNotFoundError(errnoError("EACCES"))).toBe(false);    expect(isFileNotFoundError(errnoError("EISDIR"))).toBe(false);  });   test("is false for an Error with no code", () => {    expect(isFileNotFoundError(new Error("boom"))).toBe(false);  });   test("is false for non-error values", () => {    expect(isFileNotFoundError(null)).toBe(false);    expect(isFileNotFoundError("ENOENT")).toBe(false);    expect(isFileNotFoundError({ code: "ENOENT" })).toBe(false);  });}); describe("isExpectedSnapshotRaceError", () => {  test("is true for the tolerated snapshot race codes", () => {    for (const code of ["EISDIR", "ENOENT", "ENOTDIR"]) {      expect(isExpectedSnapshotRaceError(errnoError(code))).toBe(true);    }  });   test("is false for unrelated error codes", () => {    expect(isExpectedSnapshotRaceError(errnoError("EACCES"))).toBe(false);  });   test("is false for an Error with no code", () => {    expect(isExpectedSnapshotRaceError(new Error("boom"))).toBe(false);  });   test("is false for non-error values", () => {    expect(isExpectedSnapshotRaceError(null)).toBe(false);    expect(isExpectedSnapshotRaceError({ code: "ENOENT" })).toBe(false);  });});