bf988bc6d Устранение 43 уязвимостей npm: react-scripts→Vite, ESLint 9, очистка зависимостей, исправления ошибок
c169b7740 Миграция React 18 на 19 и обновление фронтенд-зависимостей
253b9f38b обновление некоторых зависимостей и исправление ошибок ESLint
c2b85fee3 исправление ESLint
a6a7aece4 Оптимизация импортов
bf988bc6d
Устранение 43 уязвимостей npm: react-scripts→Vite, ESLint 9, очистка зависимостей, исправления ошибокbf988bc6d14252863c2a7a54c409c947fb9feb7b
diff --git a/projectforge-webapp/src/containers/ProjectForge.test.jsx b/projectforge-webapp/src/containers/ProjectForge.test.jsx
index 9abade869..cbfd0355f 100644
--- a/projectforge-webapp/src/containers/ProjectForge.test.jsx
+++ b/projectforge-webapp/src/containers/ProjectForge.test.jsx
@@ -1,40 +1,59 @@
import React from 'react';
import { createRoot } from 'react-dom/client';
import { Provider } from 'react-redux';
-import { applyMiddleware, createStore } from 'redux';
-import thunk from 'redux-thunk';
-import reducer from '../reducers';
+import { createStore, applyMiddleware } from 'redux';
+import { thunk } from 'redux-thunk';
+import { MemoryRouter } from 'react-router';
+
+vi.mock('../components/base/footer', () => ({ default: () => null }));
+vi.mock('../components/base/Toasts', () => ({ default: () => null }));
+vi.mock('../components/base/topbar', () => ({ default: () => null }));
+vi.mock('../components/base/navigation/GlobalNavigation', () => ({ default: () => null }));
+vi.mock('../components/design', () => ({ default: {}, Spinner: () => null }));
+vi.mock('./AuthorizedRoutes', () => ({ default: () => null, publicRoute: null, wicketRoute: null }));
+vi.mock('./page/form/FormPage', () => ({ default: () => null }));
+
+const mockFetchResponse = Promise.resolve({
+ ok: true,
+ json: () => Promise.resolve({}),
+});
+
+global.fetch = vi.fn(() => mockFetchResponse);
+
import ProjectForge from './ProjectForge';
+function createTestStore(initialState) {
+ const rootReducer = (state = initialState) => state;
+ return createStore(rootReducer, initialState, applyMiddleware(thunk));
+}
+
describe('renders without crashing', () => {
it('with initial state', () => {
+ const store = createTestStore({
+ authentication: { loading: true, user: null },
+ });
const div = document.createElement('div');
- const store = createStore(reducer, applyMiddleware(thunk));
createRoot(div).render(
<Provider store={store}>
- <ProjectForge />
+ <MemoryRouter>
+ <ProjectForge />
+ </MemoryRouter>
</Provider>,
);
});
it('with logged in state', () => {
+ const store = createTestStore({
+ authentication: { loading: false, user: { name: 'test' } },
+ });
c169b7740
Миграция React 18 на 19 и обновление фронтенд-зависимостейc169b77402234fdeed0dc7142ee59f16fc61851c
diff --git a/projectforge-webapp/src/containers/ProjectForge.test.jsx b/projectforge-webapp/src/containers/ProjectForge.test.jsx
index 4be2b5fc1..9abade869 100644
--- a/projectforge-webapp/src/containers/ProjectForge.test.jsx
+++ b/projectforge-webapp/src/containers/ProjectForge.test.jsx
@@ -1,5 +1,5 @@
import React from 'react';
-import ReactDOM from 'react-dom';
+import { createRoot } from 'react-dom/client';
import { Provider } from 'react-redux';
import { applyMiddleware, createStore } from 'redux';
import thunk from 'redux-thunk';
@@ -11,12 +11,10 @@ describe('renders without crashing', () => {
const div = document.createElement('div');
const store = createStore(reducer, applyMiddleware(thunk));
- ReactDOM.render(
- (
- <Provider store={store}>
- <ProjectForge />
- </Provider>
- ), div,
+ createRoot(div).render(
+ <Provider store={store}>
+ <ProjectForge />
+ </Provider>,
);
});
@@ -34,12 +32,10 @@ describe('renders without crashing', () => {
applyMiddleware(thunk),
);
- ReactDOM.render(
- (
- <Provider store={store}>
- <ProjectForge />
- </Provider>
- ), div,
+ createRoot(div).render(
+ <Provider store={store}>
+ <ProjectForge />
+ </Provider>,
);
});
});
253b9f38b
обновление некоторых зависимостей и исправление ошибок ESLint253b9f38b25268fbe922dbe9e4ddca94b13b98aa
diff --git a/projectforge-webapp/src/containers/ProjectForge.test.jsx b/projectforge-webapp/src/containers/ProjectForge.test.jsx
index 0e9cc75af..4be2b5fc1 100644
--- a/projectforge-webapp/src/containers/ProjectForge.test.jsx
+++ b/projectforge-webapp/src/containers/ProjectForge.test.jsx
@@ -11,11 +11,13 @@ describe('renders without crashing', () => {
const div = document.createElement('div');
const store = createStore(reducer, applyMiddleware(thunk));
- ReactDOM.render((
- <Provider store={store}>
- <ProjectForge />
- </Provider>
- ), div);
+ ReactDOM.render(
+ (
+ <Provider store={store}>
+ <ProjectForge />
+ </Provider>
+ ), div,
+ );
});
it('with logged in state', () => {
@@ -32,10 +34,12 @@ describe('renders without crashing', () => {
applyMiddleware(thunk),
);
- ReactDOM.render((
- <Provider store={store}>
- <ProjectForge />
- </Provider>
- ), div);
+ ReactDOM.render(
+ (
+ <Provider store={store}>
+ <ProjectForge />
+ </Provider>
+ ), div,
+ );
});
});
c2b85fee3
исправление ESLintc2b85fee3b86c2c21d4ebc4dfe040c2638e44f72
diff --git a/projectforge-webapp/src/containers/ProjectForge.test.jsx b/projectforge-webapp/src/containers/ProjectForge.test.jsx
index a454b564a..0e9cc75af 100644
--- a/projectforge-webapp/src/containers/ProjectForge.test.jsx
+++ b/projectforge-webapp/src/containers/ProjectForge.test.jsx
@@ -1,7 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
-import {Provider} from 'react-redux';
-import {applyMiddleware, createStore} from 'redux';
+import { Provider } from 'react-redux';
+import { applyMiddleware, createStore } from 'redux';
import thunk from 'redux-thunk';
import reducer from '../reducers';
import ProjectForge from './ProjectForge';
a6a7aece4
Оптимизация импортовa6a7aece4d6f38909372f55af0361a52575b8f9c
diff --git a/projectforge-webapp/src/containers/ProjectForge.test.jsx b/projectforge-webapp/src/containers/ProjectForge.test.jsx
index 0e9cc75af..a454b564a 100644
--- a/projectforge-webapp/src/containers/ProjectForge.test.jsx
+++ b/projectforge-webapp/src/containers/ProjectForge.test.jsx
@@ -1,7 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
-import { Provider } from 'react-redux';
-import { applyMiddleware, createStore } from 'redux';
+import {Provider} from 'react-redux';
+import {applyMiddleware, createStore} from 'redux';
import thunk from 'redux-thunk';
import reducer from '../reducers';
import ProjectForge from './ProjectForge';