Skip to content

Commit f3a1a6a

Browse files
committed
#NOISSUE Upgrade dependencies
1 parent 5da0c87 commit f3a1a6a

16 files changed

+4064
-3818
lines changed

package-lock.json

+2,709-2,983
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+28-29
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,44 @@
77
},
88
"license": "GPL-3.0-only",
99
"dependencies": {
10-
"@chakra-ui/react": "^2.8.1",
11-
"@emotion/react": "^11.11.1",
10+
"@chakra-ui/react": "^2.8.2",
11+
"@emotion/react": "^11.11.3",
1212
"@emotion/styled": "^11.11.0",
1313
"@railmapgen/rmg-components": "^9.0.0",
1414
"@railmapgen/rmg-palette-resources": "file:package/dist",
15-
"@railmapgen/rmg-runtime": "^8.0.3",
15+
"@railmapgen/rmg-runtime": "^8.1.0",
1616
"@railmapgen/rmg-translate": "^3.1.0",
17-
"@reduxjs/toolkit": "^1.9.6",
18-
"@vitejs/plugin-legacy": "^4.1.1",
19-
"ag-grid-community": "^30.2.0",
20-
"ag-grid-react": "^30.2.0",
21-
"framer-motion": "^10.16.4",
17+
"@reduxjs/toolkit": "^2.0.1",
18+
"@vitejs/plugin-legacy": "^5.2.0",
19+
"ag-grid-community": "^31.0.1",
20+
"ag-grid-react": "^31.0.1",
21+
"framer-motion": "^10.16.16",
2222
"react": "^18.2.0",
2323
"react-dom": "^18.2.0",
24-
"react-i18next": "^13.2.2",
25-
"react-icons": "^4.11.0",
26-
"react-redux": "^8.1.2",
27-
"react-router-dom": "^6.16.0"
24+
"react-i18next": "^14.0.0",
25+
"react-icons": "^4.12.0",
26+
"react-redux": "^9.0.4",
27+
"react-router-dom": "^6.21.1"
2828
},
2929
"devDependencies": {
30-
"@testing-library/jest-dom": "^6.1.3",
31-
"@testing-library/react": "^14.0.0",
32-
"@types/node": "^20.7.1",
33-
"@types/react": "^18.2.23",
34-
"@types/react-dom": "^18.2.8",
30+
"@testing-library/jest-dom": "^6.1.6",
31+
"@testing-library/react": "^14.1.2",
32+
"@testing-library/user-event": "^14.5.1",
33+
"@types/node": "^20.10.5",
34+
"@types/react": "^18.2.45",
35+
"@types/react-dom": "^18.2.18",
3536
"@types/react-router-dom": "^5.3.3",
36-
"@types/redux-mock-store": "^1.0.4",
37-
"@typescript-eslint/eslint-plugin": "^6.7.3",
38-
"@typescript-eslint/parser": "^6.7.3",
39-
"@vitejs/plugin-react": "^4.1.0",
40-
"eslint": "^8.50.0",
41-
"eslint-plugin-prettier": "^5.0.0",
37+
"@typescript-eslint/eslint-plugin": "^6.16.0",
38+
"@typescript-eslint/parser": "^6.16.0",
39+
"@vitejs/plugin-react": "^4.2.1",
40+
"eslint": "^8.56.0",
41+
"eslint-plugin-prettier": "^5.1.2",
4242
"eslint-plugin-react": "^7.33.2",
43-
"prettier": "^3.0.3",
44-
"redux-mock-store": "^1.5.4",
45-
"terser": "^5.20.0",
46-
"typescript": "^5.2.2",
47-
"vite": "^4.4.9",
48-
"vitest": "^0.34.5"
43+
"prettier": "^3.1.1",
44+
"terser": "^5.26.0",
45+
"typescript": "^5.3.3",
46+
"vite": "^5.0.10",
47+
"vitest": "^1.1.0"
4948
},
5049
"scripts": {
5150
"dev": "vite --host",

package/package-lock.json

+1,244-672
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"url": "https://github.com/railmapgen/rmg-palette.git",
77
"directory": "package"
88
},
9-
"version": "2.1.9",
9+
"version": "2.2.0-0",
1010
"description": "",
1111
"main": "./index.js",
1212
"scripts": {
@@ -17,11 +17,11 @@
1717
"author": "",
1818
"license": "GPL-3.0",
1919
"devDependencies": {
20-
"@types/jsdom": "^21.1.3",
21-
"jsdom": "^22.1.0",
22-
"ts-node": "^10.9.1",
23-
"typescript": "^5.2.2",
24-
"vitest": "^0.34.5"
20+
"@types/jsdom": "^21.1.6",
21+
"jsdom": "^23.0.1",
22+
"ts-node": "^10.9.2",
23+
"typescript": "^5.3.3",
24+
"vitest": "^1.1.0"
2525
},
2626
"exports": {
2727
".": "./index.js",
File renamed without changes.

src/components/modal/submit-modal.test.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { vi } from 'vitest';
33
import SubmitModal from './submit-modal';
44
import { fireEvent, screen } from '@testing-library/react';
55
import rootReducer from '../../redux';
6-
import { createMockRootStore } from '../../setupTests';
6+
import { createTestStore } from '../../setupTests';
77
import { MonoColour } from '@railmapgen/rmg-palette-resources';
88

99
const realStore = rootReducer.getState();
@@ -30,8 +30,7 @@ describe('SubmitModal', () => {
3030
});
3131

3232
it('Can display one click submit button if no errors', () => {
33-
const mockStore = createMockRootStore({
34-
...realStore,
33+
const mockStore = createTestStore({
3534
ticket: {
3635
...realStore.ticket,
3736
country: 'HK',

src/components/picker-view/city-picker.test.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import { vi } from 'vitest';
44
import i18n from '../../i18n/config';
55
import { render } from '../../test-utils';
66
import rootReducer from '../../redux';
7-
import { createMockRootStore } from '../../setupTests';
7+
import { createTestStore } from '../../setupTests';
88

99
const realStore = rootReducer.getState();
10-
const mockStore = createMockRootStore({
11-
...realStore,
10+
const mockStore = createTestStore({
1211
app: {
1312
...realStore.app,
1413
cityList: [
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,33 @@
11
import { render } from '../../test-utils';
22
import CitySection from './city-section';
33
import { fireEvent, screen, waitFor } from '@testing-library/react';
4-
import rootReducer from '../../redux';
5-
import { createMockRootStore } from '../../setupTests';
4+
import rootReducer, { RootStore } from '../../redux';
5+
import { createTestStore } from '../../setupTests';
66
import { vi } from 'vitest';
77

88
const realStore = rootReducer.getState();
9-
const mockStore = createMockRootStore({
10-
...realStore,
11-
app: {
12-
...realStore.app,
13-
cityList: [
14-
{
15-
id: 'guangzhou',
16-
country: 'CN',
17-
name: {
18-
en: 'Guangzhou',
19-
},
20-
},
21-
],
22-
},
23-
ticket: { ...realStore.ticket, country: 'CN' },
24-
});
9+
let mockStore: RootStore;
2510

2611
const originalFetch = global.fetch;
2712
const mockFetch = vi.fn();
2813

2914
describe('CitySection', () => {
30-
afterEach(() => {
31-
mockStore.clearActions();
15+
beforeEach(() => {
16+
mockStore = createTestStore({
17+
app: {
18+
...realStore.app,
19+
cityList: [
20+
{
21+
id: 'guangzhou',
22+
country: 'CN',
23+
name: {
24+
en: 'Guangzhou',
25+
},
26+
},
27+
],
28+
},
29+
ticket: { ...realStore.ticket, country: 'CN' },
30+
});
3231
vi.clearAllMocks();
3332
global.fetch = originalFetch;
3433
});
@@ -71,30 +70,14 @@ describe('CitySection', () => {
7170

7271
// select guangzhou
7372
fireEvent.change(screen.getByRole('combobox', { name: 'City' }), { target: { value: 'guangzhou' } });
74-
await waitFor(() => expect(mockStore.getActions()).toHaveLength(1));
75-
76-
const actions = mockStore.getActions();
77-
expect(actions).toContainEqual(
78-
expect.objectContaining({
79-
type: 'ticket/populateTicket',
80-
payload: expect.objectContaining({
81-
city: expect.objectContaining({
82-
id: 'guangzhou',
83-
country: 'CN',
84-
}),
85-
}),
86-
})
87-
);
73+
await waitFor(() => expect(mockStore.getState().ticket.city).toBe('guangzhou'));
8874
});
8975

9076
it('Can clear lines when adding a new city', async () => {
9177
render(<CitySection />, { store: mockStore });
9278

9379
// select new
9480
fireEvent.change(screen.getByRole('combobox', { name: 'City' }), { target: { value: 'new' } });
95-
await waitFor(() => expect(mockStore.getActions()).toHaveLength(1));
96-
97-
const actions = mockStore.getActions();
98-
expect(actions).toContainEqual({ type: 'ticket/setCity', payload: 'new' });
81+
await waitFor(() => expect(mockStore.getState().ticket.city).toBe('new'));
9982
});
10083
});

src/components/ticket-view/colour-entry-card.test.tsx

+23-27
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
1-
import rootReducer from '../../redux';
2-
import { createMockRootStore } from '../../setupTests';
1+
import rootReducer, { RootStore } from '../../redux';
2+
import { createTestStore } from '../../setupTests';
33
import { PaletteEntryWithTranslationEntry, TranslationEntry } from '../../redux/ticket/util';
44
import { MonoColour } from '@railmapgen/rmg-palette-resources';
5-
import { render, TestingProvider } from '../../test-utils';
5+
import { render } from '../../test-utils';
66
import ColourEntryCard from './colour-entry-card';
7-
import { act, fireEvent, render as originalRender, screen } from '@testing-library/react';
7+
import { act, fireEvent, screen } from '@testing-library/react';
88
import { vi } from 'vitest';
9+
import { setPantoneReady } from '../../redux/app/app-slice';
910

1011
const initialTranslation: TranslationEntry[] = [['en', '']];
1112

1213
const realStore = rootReducer.getState();
13-
const mockStore = createMockRootStore({
14-
...realStore,
15-
app: {
16-
...realStore.app,
17-
pantoneReady: true,
18-
},
19-
});
14+
let mockStore: RootStore;
2015

2116
const mockLineDetail: PaletteEntryWithTranslationEntry = {
2217
id: '002',
@@ -34,26 +29,18 @@ const originalFetch = global.fetch;
3429

3530
describe('ColourEntryCard', () => {
3631
describe('ColourEntryCard - rerender', () => {
37-
it('Can hide pantone input if pantone service is not ready', () => {
38-
const notReadyStore = createMockRootStore({
39-
...realStore,
40-
});
41-
const { rerender } = originalRender(
42-
<TestingProvider store={notReadyStore}>
43-
<ColourEntryCard lineDetail={mockLineDetail} {...mockCallbacks} />
44-
</TestingProvider>
45-
);
32+
it('Can hide pantone input if pantone service is not ready', async () => {
33+
const mockStore = createTestStore();
34+
render(<ColourEntryCard lineDetail={mockLineDetail} {...mockCallbacks} />, { store: mockStore });
4635

4736
// only rgb is available
4837
expect(screen.queryByRole('group', { name: 'Use Pantone' })).not.toBeInTheDocument();
4938
expect(screen.getByRole('combobox', { name: 'Background colour' })).not.toBeDisabled();
5039
expect(screen.queryByRole('group', { name: 'Pantone code' })).not.toBeInTheDocument();
5140

52-
rerender(
53-
<TestingProvider store={mockStore}>
54-
<ColourEntryCard lineDetail={mockLineDetail} {...mockCallbacks} />
55-
</TestingProvider>
56-
);
41+
await act(async () => {
42+
mockStore.dispatch(setPantoneReady(true));
43+
});
5744

5845
// colour mode switch is available
5946
expect(screen.getByRole('group', { name: 'Use Pantone' })).toBeInTheDocument();
@@ -63,6 +50,15 @@ describe('ColourEntryCard', () => {
6350
});
6451

6552
describe('ColourEntryCard - Pantone input', () => {
53+
beforeEach(() => {
54+
mockStore = createTestStore({
55+
app: {
56+
...realStore.app,
57+
pantoneReady: true,
58+
},
59+
});
60+
});
61+
6662
afterEach(() => {
6763
global.fetch = originalFetch;
6864
vi.resetAllMocks();
@@ -89,6 +85,7 @@ describe('ColourEntryCard', () => {
8985

9086
it('Do not update store if pantone colour is failed to fetch', async () => {
9187
global.fetch = mockFetch.mockRejectedValue('Failed to fetch');
88+
const prevState = mockStore.getState().ticket;
9289
render(<ColourEntryCard lineDetail={mockLineDetail} {...mockCallbacks} />, { store: mockStore });
9390

9491
vi.useFakeTimers();
@@ -98,9 +95,8 @@ describe('ColourEntryCard', () => {
9895
});
9996

10097
expect(mockFetch).toBeCalledTimes(1);
101-
const actions = mockStore.getActions();
102-
expect(actions).toHaveLength(0);
10398

99+
expect(mockStore.getState().ticket).toEqual(prevState);
104100
expect(screen.getByRole('combobox', { name: 'Pantone code' })).toHaveValue('130 C');
105101
});
106102
});

src/components/ticket-view/country-section.test.tsx

+7-26
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,17 @@
1-
import { TestingProvider } from '../../test-utils';
1+
import { render } from '../../test-utils';
22
import CountrySection from './country-section';
3-
import { render, screen } from '@testing-library/react';
4-
import rootReducer from '../../redux';
5-
import { createMockRootStore } from '../../setupTests';
6-
7-
const realStore = rootReducer.getState();
8-
const mockStore = createMockRootStore({ ...realStore });
3+
import { screen } from '@testing-library/react';
4+
import { userEvent } from '@testing-library/user-event';
95

106
describe('CountrySection', () => {
11-
it('Can show custom country code and name fields if add a country option is selected', () => {
12-
const { rerender } = render(
13-
<TestingProvider store={mockStore}>
14-
<CountrySection />
15-
</TestingProvider>
16-
);
7+
it('Can show custom country code and name fields if add a country option is selected', async () => {
8+
const user = userEvent.setup();
9+
render(<CountrySection />);
1710

1811
expect(screen.queryByDisplayValue(/Add a new country/)).not.toBeInTheDocument();
1912
expect(screen.queryByRole('combobox', { name: 'Country code' })).not.toBeInTheDocument();
2013

21-
const mockStoreWithNewCountry = createMockRootStore({
22-
...realStore,
23-
ticket: {
24-
...realStore.ticket,
25-
country: 'new',
26-
},
27-
});
28-
29-
rerender(
30-
<TestingProvider store={mockStoreWithNewCountry}>
31-
<CountrySection />
32-
</TestingProvider>
33-
);
14+
await user.selectOptions(screen.getByRole('combobox', { name: 'Country/Region' }), 'new');
3415

3516
// 'add a country' selected
3617
expect(screen.getByDisplayValue(/Add a country/)).toBeInTheDocument();

0 commit comments

Comments
 (0)