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
+});