Skip to content

Migrate to vitest #963

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 68 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
a53a6b4
Upgrade react/react-admin and migrate to vitest
Dreamsorcerer Jun 6, 2025
e8d424e
Update package.json
Dreamsorcerer Jun 6, 2025
c460e94
Update permissions.test.js
Dreamsorcerer Jun 6, 2025
5f77903
Update relationships.test.js
Dreamsorcerer Jun 6, 2025
76632b7
Update simple.test.js
Dreamsorcerer Jun 6, 2025
ec13338
Update vite.config.js
Dreamsorcerer Jun 6, 2025
fdd8862
Update vite.config.js
Dreamsorcerer Jun 6, 2025
a34dac1
Update vite.config.js
Dreamsorcerer Jun 6, 2025
ef5c7f7
Update vite.config.js
Dreamsorcerer Jun 6, 2025
50be4a0
Update vite.config.js
Dreamsorcerer Jun 6, 2025
fad4afe
Update vite.config.js
Dreamsorcerer Jun 6, 2025
0f59db7
Update vite.config.js
Dreamsorcerer Jun 6, 2025
1c08127
Update vite.config.js
Dreamsorcerer Jun 6, 2025
d85a6c3
Update vite.config.js
Dreamsorcerer Jun 6, 2025
62459ea
Delete admin-js/jest.config.js
Dreamsorcerer Jun 6, 2025
eb0e757
Update vite.config.js
Dreamsorcerer Jun 6, 2025
8a1d345
Update package.json
Dreamsorcerer Jun 6, 2025
c58f211
Update package.json
Dreamsorcerer Jun 6, 2025
412c7d4
Update package.json
Dreamsorcerer Jun 6, 2025
a03890a
Rename permissions.test.js to permissions.test.jsx
Dreamsorcerer Jun 6, 2025
044a8d3
Rename relationships.test.js to relationships.test.jsx
Dreamsorcerer Jun 6, 2025
29af5f0
Rename simple.test.js to simple.test.jsx
Dreamsorcerer Jun 6, 2025
c3416bb
Update vite.config.js
Dreamsorcerer Jun 6, 2025
f52f8ee
Rename setupTests.js to setupTests.jsx
Dreamsorcerer Jun 6, 2025
d204f22
Update vite.config.js
Dreamsorcerer Jun 6, 2025
4853b61
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
718bd55
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
85ede25
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
9e56794
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
1ea4d9e
Update vite.config.js
Dreamsorcerer Jun 6, 2025
d912182
Update admin-js/vite.config.js
Dreamsorcerer Jun 6, 2025
e326597
Update vite.config.js
Dreamsorcerer Jun 6, 2025
0584c75
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
2cc5f62
Update package.json
Dreamsorcerer Jun 6, 2025
9b1d77b
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
d9e5797
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
dc423cb
Update ci.yml
Dreamsorcerer Jun 6, 2025
f6b2d9e
Update setupTests.jsx
Dreamsorcerer Jun 6, 2025
3c8f33e
Update package.json
Dreamsorcerer Jun 6, 2025
82bf56e
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
0632696
Update vite.config.js
Dreamsorcerer Jun 7, 2025
fa67ee9
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 7, 2025
21adf93
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 7, 2025
19aed86
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
8866794
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
025e0b0
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
cd1318e
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
ea60b92
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
79ab8a0
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
4f82c1d
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
a73c96e
Update package.json
Dreamsorcerer Jun 7, 2025
6535c30
Update setupTests.jsx
Dreamsorcerer Jun 7, 2025
1f65bd6
Update package.json
Dreamsorcerer Jun 7, 2025
6d55047
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 9, 2025
7699b65
Update package.json
Dreamsorcerer Jun 9, 2025
fcccb62
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 9, 2025
f812b29
Update setupTests.jsx
Dreamsorcerer Jun 10, 2025
9b5d068
Update setupTests.jsx
Dreamsorcerer Jun 10, 2025
c027062
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 10, 2025
21cbfab
Update package.json
Dreamsorcerer Jun 10, 2025
f3b192d
Merge branch 'master' into Dreamsorcerer-patch-1
Dreamsorcerer Jun 10, 2025
06acca3
Update setupTests.jsx
Dreamsorcerer Jun 10, 2025
db34bb4
Update setupTests.jsx
Dreamsorcerer Jun 10, 2025
cad93ab
Update vite.config.js
Dreamsorcerer Jun 10, 2025
64f72a2
Update admin-js/vite.config.js
Dreamsorcerer Jun 11, 2025
b69f082
Update setupTests.jsx
Dreamsorcerer Jun 11, 2025
7218901
Update package.json
Dreamsorcerer Jun 11, 2025
d50baea
Update admin-js/tests/setupTests.jsx
Dreamsorcerer Jun 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ jobs:
path: |
${{ env.yarn_cache }}
admin-js/node_modules
admin-js/yarn.lock
- name: Yarn install
run: yarn install
working-directory: admin-js/
Expand Down
12 changes: 0 additions & 12 deletions admin-js/jest.config.js

This file was deleted.

8 changes: 7 additions & 1 deletion admin-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@vitejs/plugin-react": "4.5.1",
"react": "18.2.0",
"react-admin": "4.16.7",
"react-dom": "18.2.0",
Expand Down Expand Up @@ -34,15 +35,20 @@
"@testing-library/react": "16.3.0",
"@testing-library/user-event": "14.6.1",
"@ungap/structured-clone": "1.3.0",
"@vitest/coverage-v8": "3.2.2",
"extend-expect": "3.0.0",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"jest-fail-on-console": "3.3.1",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"jest-fail-on-console": "3.3.1",

"jsdom": "26.1.0",
"vitest": "3.2.2",
"vitest-location-mock": "1.0.1",
"whatwg-fetch": "3.6.20"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"test": "jest"
"test": "vitest"
},
"eslintConfig": {
"extends": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {beforeAll, describe, expect, test} from "vitest";
import {within} from "@testing-library/dom";
import {screen, waitFor} from "@testing-library/react";
import userEvent from "@testing-library/user-event";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {expect, test} from "vitest";
import {within} from "@testing-library/dom";
import {screen, waitFor} from "@testing-library/react";
import userEvent from "@testing-library/user-event";
Expand Down
26 changes: 15 additions & 11 deletions admin-js/tests/setupTests.js → admin-js/tests/setupTests.jsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
const http = require("http");
//import "vitest-location-mock";
const {spawn} = require("child_process");
import "whatwg-fetch"; // https://github.com/jsdom/jsdom/issues/1724
import "@testing-library/jest-dom";
import failOnConsole from "jest-fail-on-console";
//import failOnConsole from "jest-fail-on-console";
import {memoryStore} from "react-admin";
import {afterAll, beforeAll, beforeEach, expect} from "vitest";
import {configure, render, screen} from "@testing-library/react";
import * as structuredClone from "@ungap/structured-clone";
//import * as structuredClone from "@ungap/structured-clone";

const {App} = require("../src/App");
delete globalThis.fetch;
await import("whatwg-fetch");

import {App} from "../src/App";

let pythonProcess;
let STATE;

jest.setTimeout(300000); // 5 mins
/*jest.setTimeout(300000); // 5 mins
configure({"asyncUtilTimeout": 10000});
jest.mock("react-admin", () => {
const originalModule = jest.requireActual("react-admin");
return {
...originalModule,
downloadCSV: jest.fn(), // Mock downloadCSV to test export button.
};
});
});*/

// https://github.com/jsdom/jsdom/issues/3363#issuecomment-1387439541
global.structuredClone = structuredClone.default;
//global.structuredClone = structuredClone.default;

// To render full-width
window.matchMedia = (query) => ({
Expand All @@ -33,12 +36,12 @@ window.matchMedia = (query) => ({
});

// Ignore not implemented errors
window.scrollTo = jest.fn();
//window.scrollTo = jest.fn();


global.sleep = (delay_s) => new Promise((resolve) => setTimeout(resolve, delay_s * 1000));

failOnConsole({
/*failOnConsole({
silenceMessage: (msg) => {
return (
// Suppress act() warnings, because there's too many async changes happening.
Expand All @@ -49,7 +52,7 @@ failOnConsole({
|| msg.includes("The above error occurred in the <EditBase> component")
);
}
});
});*/

beforeAll(async() => {
if (!global.pythonProcessPath)
Expand Down Expand Up @@ -100,6 +103,7 @@ global.setLogin = (username, password) => { login = {username, password}; };

beforeEach(async () => {
location.href = "/";
window.history.replaceState({}, "", "/");
localStorage.clear();

if (STATE) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {expect, test} from "vitest";
import {within} from "@testing-library/dom";
import {screen, waitFor} from "@testing-library/react";
import userEvent from "@testing-library/user-event";
Expand Down
22 changes: 21 additions & 1 deletion admin-js/vite.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import {defineConfig} from "vite";

export default defineConfig({
build: {
Expand All @@ -12,4 +13,23 @@ export default defineConfig({
},
sourcemap: true,
},
plugins: [react()],
test: {
clearMocks: true,
coverage: {
exclude: [],
},
environment: "jsdom",
environmentOptions: {
url: "http://localhost:8080",
pretendToBeVisual: true
},
expect: {
requireAssertions: true
},
fileParallelism: false,
mockReset: true,
restoreMocks: true,
setupFiles: "tests/setupTests.jsx",
}
})
Loading