diff --git a/README.md b/README.md index 93a5289bd..7d3f7145c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ -

NextChat (ChatGPT Next Web)

+

NextChat

English / [简体中文](./README_CN.md) @@ -40,24 +40,6 @@ English / [简体中文](./README_CN.md) -## 👋 Hey, NextChat is going to develop a native app! - -> This week we are going to start working on iOS and Android APP, and we want to find some reliable friends to do it together! - - -✨ Several key points: - -- Starting from 0, you are a veteran -- Completely open source, not hidden -- Native development, pursuing the ultimate experience - -Will you come and do something together? 😎 - -https://github.com/ChatGPTNextWeb/NextChat/issues/6269 - -#Seeking for talents is thirsty #lack of people - - ## 🥳 Cheer for DeepSeek, China's AI star! > Purpose-Built UI for DeepSeek Reasoner Model 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 1d2e6ea2d..36da37d23 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 +});