Skip to content

Commit 58bb514

Browse files
committed
[test]: upgrade jest and update github action
1 parent bf4cad5 commit 58bb514

File tree

348 files changed

+14385
-24444
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

348 files changed

+14385
-24444
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
jobs:
2+
catch-and-install:
3+
runs-on: ubuntu-latest
4+
5+
steps:
6+
- name: Checkout
7+
uses: actions/checkout@v3
8+
9+
- name: Install Node.js
10+
uses: actions/setup-node@v3
11+
with:
12+
node-version: 16
13+
14+
- uses: pnpm/action-setup@v2
15+
name: Install pnpm
16+
with:
17+
version: 8
18+
run_install: false
19+
20+
- name: Get pnpm store directory
21+
shell: bash
22+
run: |
23+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
24+
25+
- uses: actions/cache@v3
26+
name: Setup pnpm cache
27+
with:
28+
path: ${{ env.STORE_PATH }}
29+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
30+
restore-keys: |
31+
${{ runner.os }}-pnpm-store-
32+
33+
- name: Install dependencies
34+
run: pnpm install

.github/workflows/main.yml

+36-30
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,54 @@ on:
88
workflow_dispatch:
99

1010
jobs:
11-
cache-and-install:
11+
checker:
1212
runs-on: ubuntu-latest
1313
if: "!contains(github.event.head_commit.message, '[skip ci]')"
1414

1515
steps:
16-
- name: Checkout
17-
uses: actions/checkout@v3
16+
- uses: ./catch-and-install-pnpm.yml
17+
- name: Code lint checker
18+
run: pnpm checker
1819

19-
- name: Install Node.js
20-
uses: actions/setup-node@v3
21-
with:
22-
node-version: 16
2320

24-
- uses: pnpm/action-setup@v2
25-
name: Install pnpm
26-
with:
27-
version: 8
28-
run_install: false
29-
30-
- name: Get pnpm store directory
31-
shell: bash
32-
run: |
33-
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
21+
test-ee:
22+
runs-on: ubuntu-latest
23+
if: "!contains(github.event.head_commit.message, '[skip ci]')"
24+
strategy:
25+
matrix:
26+
shard: [1, 2, 3, 4]
3427

35-
- uses: actions/cache@v3
36-
name: Setup pnpm cache
28+
- uses: ./catch-and-install-pnpm.yml
29+
name: Coverage test report ee
3730
with:
38-
path: ${{ env.STORE_PATH }}
39-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
40-
restore-keys: |
41-
${{ runner.os }}-pnpm-store-
42-
43-
- name: Install dependencies
44-
run: pnpm install
31+
skip-step: install
32+
test-script: pnpm test:ci-ee ${{ matrix.shard }} ${{ strategy.job-total }}
33+
package-manager: pnpm
4534

46-
- name: Code lint checker
47-
run: pnpm checker
35+
test-ce:
36+
runs-on: ubuntu-latest
37+
if: "!contains(github.event.head_commit.message, '[skip ci]')"
38+
steps:
39+
- uses: ./catch-and-install-pnpm.yml
40+
- name: Coverage test report ce
41+
with:
42+
skip-step: install
43+
test-script: pnpm test:ci-ce
44+
package-manager: pnpm
4845

46+
report:
47+
runs-on: ubuntu-latest
48+
if: "!contains(github.event.head_commit.message, '[skip ci]')"
49+
steps:
4950
- uses: ArtiomTr/jest-coverage-report-action@v2
50-
name: Coverage test report
51+
- name: Coverage test report
5152
with:
5253
skip-step: install
5354
github-token: ${{ secrets.GITHUB_TOKEN }}
54-
test-script: pnpm test:ci
55+
test-script: node ./scripts/jest/merge-report-json.js
5556
package-manager: pnpm
57+
58+
59+
60+
61+

.gitignore

-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@ dist
1313
**/dist/*
1414

1515
# testing
16-
/ee_coverage
1716
/ce_coverage
1817
/coverage
19-
/packages/*/coverage
2018
/report.json
2119

2220
# production

package.json

+11-8
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,22 @@
2020
"checker": "pnpm ts-check && pnpm eslint && pnpm stylelint && pnpm prettier:c",
2121
"test": "sh ./scripts/jest/run.sh",
2222
"test:c": "sh ./scripts/jest/run-coverage.sh",
23-
"test:ci": "sh ./scripts/jest/run-ci.sh",
23+
"test:ci": "sh ./scripts/jest/run-ci-ee.sh && sh ./scripts/jest/run-ce-ce.sh && node ./scripts/jest/merge-report-json.js",
2424
"test:clean": "jest --clearCache",
25-
"test:merge": "istanbul-merge --out report.json ce_coverage/report.json coverage/report.json"
25+
"test:merge": "nyc merge coverage/ report.json"
2626
},
2727
"keywords": [],
2828
"author": "",
2929
"devDependencies": {
3030
"@cfaester/enzyme-adapter-react-18": "^0.7.0",
3131
"@stylelint/postcss-css-in-js": "^0.38.0",
32-
"@testing-library/dom": "^9.2.0",
33-
"@testing-library/jest-dom": "^5.16.5",
34-
"@testing-library/react": "^13.3.0",
32+
"@testing-library/dom": "9.3.4",
33+
"@testing-library/jest-dom": "6.4.2",
34+
"@testing-library/react": "14.2.1",
3535
"@testing-library/react-hooks": "^8.0.1",
3636
"@testing-library/user-event": "^14.4.3",
3737
"@types/enzyme": "^3.10.8",
38-
"@types/jest": "27.5.1",
38+
"@types/jest": "29.5.12",
3939
"@types/json2md": "^1.5.1",
4040
"@types/lodash": "^4.14.182",
4141
"@types/node": "^18.0.4",
@@ -48,6 +48,7 @@
4848
"@typescript-eslint/parser": "^5.30.6",
4949
"@vitejs/plugin-react": "^2.1.0",
5050
"babel-jest": "^29.7.0",
51+
"babel-preset-react-app": "^10.0.1",
5152
"comment-parser": "^1.4.1",
5253
"cross-env": "^7.0.3",
5354
"enzyme": "^3.11.0",
@@ -58,13 +59,15 @@
5859
"eslint-plugin-prettier": "^4.2.1",
5960
"identity-obj-proxy": "^3.0.0",
6061
"istanbul-merge": "^2.0.0",
61-
"jest": "27.5.1",
62-
"jest-environment-jsdom": "27.5.1",
62+
"jest": "29.1.2",
63+
"jest-canvas-mock": "^2.2.0",
64+
"jest-environment-jsdom": "29.7.0",
6365
"jest-slow-test-reporter": "^1.0.0",
6466
"jest-watch-typeahead": "^2.1.1",
6567
"less": "^4.1.3",
6668
"mockdate": "^3.0.5",
6769
"msw": "^0.45.0",
70+
"nyc": "^15.1.0",
6871
"postcss-less": "^6.0.0",
6972
"prettier": "^2.7.1",
7073
"stylelint": "^15.10.2",

packages/base/src/hooks/useDbService/__snapshots__/index.test.tsx.snap

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

33
exports[`useDbService should render options when use generateDbServiceIDSelectOptions 1`] = `
4-
Array [
5-
Object {
4+
[
5+
{
66
"label": <DatabaseTypeLogo
77
dbType="MySQL"
88
logoUrl=""
99
/>,
10-
"options": Array [
11-
Object {
10+
"options": [
11+
{
1212
"label": "test (127.0.0.1:3306)",
1313
"value": "123123",
1414
},
15-
Object {
15+
{
1616
"label": "test2 (localhost:3306)",
1717
"value": "300123",
1818
},
@@ -277,18 +277,18 @@ exports[`useDbService should render options when use generateDbServiceIDSelectOp
277277
`;
278278

279279
exports[`useDbService should render options when use generateDbServiceSelectOptions 1`] = `
280-
Array [
281-
Object {
280+
[
281+
{
282282
"label": <DatabaseTypeLogo
283283
dbType="MySQL"
284284
logoUrl=""
285285
/>,
286-
"options": Array [
287-
Object {
286+
"options": [
287+
{
288288
"label": "test (127.0.0.1:3306)",
289289
"value": "test",
290290
},
291-
Object {
291+
{
292292
"label": "test2 (localhost:3306)",
293293
"value": "test2",
294294
},

packages/base/src/hooks/useDbService/index.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ describe('useDbService', () => {
4141
ListDBServiceTipsFunctionalModuleEnum.create_export_task
4242
})
4343
);
44-
expect(listDbServicesSpy).toBeCalled();
45-
expect(listDbServicesSpy).toBeCalledWith({
44+
expect(listDbServicesSpy).toHaveBeenCalled();
45+
expect(listDbServicesSpy).toHaveBeenCalledWith({
4646
functional_module:
4747
ListDBServiceTipsFunctionalModuleEnum.create_export_task,
4848
project_uid: projectID

packages/base/src/hooks/useSqlReviewTemplateToggle/index.test.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ describe('test base/hooks/useSqlReviewTemplateToggle', () => {
4444
await act(() => {
4545
result.current.changeAuditRequired(false);
4646
});
47-
expect(mockSetFieldsForm).not.toBeCalled();
47+
expect(mockSetFieldsForm).not.toHaveBeenCalled();
4848

4949
await act(() => {
5050
result.current.changeAuditRequired(true);
5151
});
5252

53-
expect(mockSetFieldsForm).toBeCalledTimes(1);
54-
expect(mockSetFieldsForm).toBeCalledWith({
53+
expect(mockSetFieldsForm).toHaveBeenCalledTimes(1);
54+
expect(mockSetFieldsForm).toHaveBeenCalledWith({
5555
needSqlAuditService: true
5656
});
5757
});
@@ -62,9 +62,9 @@ describe('test base/hooks/useSqlReviewTemplateToggle', () => {
6262
await act(() => {
6363
result.current.clearRuleTemplate();
6464
});
65-
expect(mockSetFieldsForm).toBeCalledTimes(1);
65+
expect(mockSetFieldsForm).toHaveBeenCalledTimes(1);
6666

67-
expect(mockSetFieldsForm).toBeCalledWith({
67+
expect(mockSetFieldsForm).toHaveBeenCalledWith({
6868
needSqlAuditService: false,
6969
ruleTemplateId: undefined,
7070
ruleTemplateName: undefined

packages/base/src/hooks/useSystemConfig/index.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ describe('test base/hooks/useSystemConfig', () => {
7676
`/logo_custom.png?temp=${dayjs('2023-12-18 12:00:00').valueOf()}`
7777
);
7878

79-
expect(scopeDispatch).toBeCalledTimes(1);
79+
expect(scopeDispatch).toHaveBeenCalledTimes(1);
8080
expect(scopeDispatch).nthCalledWith(1, {
8181
payload: {
8282
webLogoUrl: `/logo_custom.png?temp=${dayjs(
@@ -94,7 +94,7 @@ describe('test base/hooks/useSystemConfig', () => {
9494
expect(document.title).toBe(DMS_DEFAULT_WEB_TITLE);
9595
expect(mockedElement.href).toBe(DMS_DEFAULT_WEB_LOGO_URL);
9696

97-
expect(scopeDispatch).toBeCalledTimes(2);
97+
expect(scopeDispatch).toHaveBeenCalledTimes(2);
9898
expect(scopeDispatch).nthCalledWith(2, {
9999
payload: {
100100
webLogoUrl: DMS_DEFAULT_WEB_LOGO_URL,

packages/base/src/hooks/useTaskSource/index.test.tsx

+10-10
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ describe('useTaskSource', () => {
4141
});
4242

4343
expect(result.current.loading).toBe(true);
44-
expect(requestSpy).toBeCalledTimes(1);
44+
expect(requestSpy).toHaveBeenCalledTimes(1);
4545
expect(result.current.taskSourceList).toEqual([]);
4646

4747
await act(async () => jest.advanceTimersByTime(3000));
4848

4949
expect(result.current.loading).toBe(false);
50-
expect(requestSpy).toBeCalledTimes(1);
50+
expect(requestSpy).toHaveBeenCalledTimes(1);
5151
expect(result.current.taskSourceList).toEqual(taskListTips);
5252
cleanup();
5353

@@ -77,13 +77,13 @@ describe('useTaskSource', () => {
7777
});
7878

7979
expect(result.current.loading).toBe(true);
80-
expect(requestSpy).toBeCalledTimes(1);
80+
expect(requestSpy).toHaveBeenCalledTimes(1);
8181
expect(result.current.taskSourceList).toEqual([]);
8282

8383
await act(async () => jest.advanceTimersByTime(3000));
8484

8585
expect(result.current.loading).toBe(false);
86-
expect(requestSpy).toBeCalledTimes(1);
86+
expect(requestSpy).toHaveBeenCalledTimes(1);
8787
expect(result.current.taskSourceList).toEqual([
8888
{ source: 'source1', db_types: ['mysql'] },
8989
{ source: 'source2', db_types: ['oracle'] }
@@ -100,7 +100,7 @@ describe('useTaskSource', () => {
100100
result.current.updateTaskSourceList();
101101
});
102102
expect(result.current.loading).toBe(true);
103-
expect(requestSpy).toBeCalledTimes(1);
103+
expect(requestSpy).toHaveBeenCalledTimes(1);
104104
expect(result.current.taskSourceList).toEqual([
105105
{ source: 'source1', db_types: ['mysql'] },
106106
{ source: 'source2', db_types: ['oracle'] }
@@ -109,7 +109,7 @@ describe('useTaskSource', () => {
109109
await act(async () => jest.advanceTimersByTime(3000));
110110

111111
expect(result.current.loading).toBe(false);
112-
expect(requestSpy).toBeCalledTimes(1);
112+
expect(requestSpy).toHaveBeenCalledTimes(1);
113113
expect(result.current.taskSourceList).toEqual([]);
114114
});
115115

@@ -123,13 +123,13 @@ describe('useTaskSource', () => {
123123
});
124124

125125
expect(result.current.loading).toBe(true);
126-
expect(requestSpy).toBeCalledTimes(1);
126+
expect(requestSpy).toHaveBeenCalledTimes(1);
127127
expect(result.current.taskSourceList).toEqual([]);
128128

129129
await act(async () => jest.advanceTimersByTime(3000));
130130

131131
expect(result.current.loading).toBe(false);
132-
expect(requestSpy).toBeCalledTimes(1);
132+
expect(requestSpy).toHaveBeenCalledTimes(1);
133133
expect(result.current.taskSourceList).toEqual([
134134
{ source: 'source1', db_types: ['mysql'] },
135135
{ source: 'source2', db_types: ['oracle'] }
@@ -146,7 +146,7 @@ describe('useTaskSource', () => {
146146
result.current.updateTaskSourceList();
147147
});
148148
expect(result.current.loading).toBe(true);
149-
expect(requestSpy).toBeCalledTimes(1);
149+
expect(requestSpy).toHaveBeenCalledTimes(1);
150150
expect(result.current.taskSourceList).toEqual([
151151
{ source: 'source1', db_types: ['mysql'] },
152152
{ source: 'source2', db_types: ['oracle'] }
@@ -155,7 +155,7 @@ describe('useTaskSource', () => {
155155
await act(async () => jest.advanceTimersByTime(3000));
156156

157157
expect(result.current.loading).toBe(false);
158-
expect(requestSpy).toBeCalledTimes(1);
158+
expect(requestSpy).toHaveBeenCalledTimes(1);
159159
expect(result.current.taskSourceList).toEqual([]);
160160
});
161161

0 commit comments

Comments
 (0)