diff --git a/jest.config.ts b/jest.config.ts index cd25e8e7a..5f095dffb 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -15,6 +15,8 @@ const config: Config = { moduleNameMapper: { "^@/(.*)$": "/$1", }, + extensionsToTreatAsEsm: [".ts", ".tsx"], + injectGlobals: true, }; // createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async diff --git a/jest.setup.ts b/jest.setup.ts index bc515f9a1..9ba27fef2 100644 --- a/jest.setup.ts +++ b/jest.setup.ts @@ -1,24 +1,22 @@ // Learn more: https://github.com/testing-library/jest-dom import "@testing-library/jest-dom"; +import { jest } from "@jest/globals"; global.fetch = jest.fn(() => Promise.resolve({ ok: true, status: 200, - json: () => Promise.resolve({}), + json: () => Promise.resolve([]), headers: new Headers(), redirected: false, statusText: "OK", type: "basic", url: "", - clone: function () { - return this; - }, body: null, bodyUsed: false, arrayBuffer: () => Promise.resolve(new ArrayBuffer(0)), blob: () => Promise.resolve(new Blob()), formData: () => Promise.resolve(new FormData()), text: () => Promise.resolve(""), - }), + } as Response), ); diff --git a/package.json b/package.json index 0efe27b39..ceb92d7fc 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "prompts": "node ./scripts/fetch-prompts.mjs", "prepare": "husky install", "proxy-dev": "sh ./scripts/init-proxy.sh && proxychains -f ./scripts/proxychains.conf yarn dev", - "test": "jest --watch", - "test:ci": "jest --ci" + "test": "node --no-warnings --experimental-vm-modules $(yarn bin jest) --watch", + "test:ci": "node --no-warnings --experimental-vm-modules $(yarn bin jest) --ci" }, "dependencies": { "@fortaine/fetch-event-source": "^3.0.6", diff --git a/test/vision-model-checker.test.ts b/test/vision-model-checker.test.ts index 734e992d8..c25d92337 100644 --- a/test/vision-model-checker.test.ts +++ b/test/vision-model-checker.test.ts @@ -1,3 +1,4 @@ +import { jest } from "@jest/globals"; import { isVisionModel } from "../app/utils"; describe("isVisionModel", () => { @@ -50,7 +51,7 @@ describe("isVisionModel", () => { test("should identify models from VISION_MODELS env var", () => { process.env.VISION_MODELS = "custom-vision-model,another-vision-model"; - + expect(isVisionModel("custom-vision-model")).toBe(true); expect(isVisionModel("another-vision-model")).toBe(true); expect(isVisionModel("unrelated-model")).toBe(false); @@ -64,4 +65,4 @@ describe("isVisionModel", () => { expect(isVisionModel("unrelated-model")).toBe(false); expect(isVisionModel("gpt-4-vision")).toBe(true); }); -}); \ No newline at end of file +});