Skip to content

Commit 8ca7c15

Browse files
cshfangstocaaro
andauthored
chore: Upgrade Jest (#12607)
* chore: Upgrade Jest * Address feedback * Address feedback * Fix issue with required uuid-validate module --------- Co-authored-by: Aaron S <[email protected]>
1 parent cf3a619 commit 8ca7c15

File tree

252 files changed

+5604
-8083
lines changed

Some content is hidden

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

252 files changed

+5604
-8083
lines changed

jest.config.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/** @type {import('jest').Config} */
2+
module.exports = {
3+
coveragePathIgnorePatterns: [
4+
'/node_modules/',
5+
'dist',
6+
'__tests__',
7+
],
8+
setupFiles: ['../../jest.setup.js'],
9+
testEnvironment: 'jsdom',
10+
testRegex: '/__tests__/.*\\.(test|spec)\\.[jt]sx?$',
11+
transform: {
12+
'^.+\\.(js|jsx|ts|tsx)$': [
13+
'ts-jest',
14+
{
15+
tsconfig: {
16+
allowJs: true,
17+
lib: ['dom', 'es2020'],
18+
noImplicitAny: false,
19+
types: ['jest', 'jsdom'],
20+
},
21+
},
22+
],
23+
},
24+
};

jest.setup.js

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Suppress console messages printing during unit tests.
2+
// Comment out log level as necessary (e.g. while debugging tests)
3+
global.console = {
4+
...console,
5+
log: jest.fn(),
6+
debug: jest.fn(),
7+
info: jest.fn(),
8+
warn: jest.fn(),
9+
error: jest.fn(),
10+
};
11+
12+
// React Native global
13+
global['__DEV__'] = true;

package.json

+8-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
"setup-dev": "yarn && yarn bootstrap && yarn link-all && yarn build",
88
"setup-dev:react-native": "node ./scripts/setup-dev-rn",
99
"bootstrap": "lerna bootstrap",
10-
"test": "lerna run test --stream && yarn test:license && yarn test:github-actions && yarn test:tsc-compliance",
10+
"test": "yarn test:no-datastore && yarn test:datastore && yarn test:license && yarn test:github-actions && yarn test:tsc-compliance",
11+
"test:no-datastore": "lerna run test --stream --ignore @aws-amplify/datastore",
12+
"test:datastore": "lerna run test --stream --scope @aws-amplify/datastore",
1113
"test:size": "lerna run test:size --no-bail",
1214
"test:duplicates": "./scripts/duplicates-yarn.sh",
1315
"test:license": "license-check-and-add check -f license_config.json",
@@ -84,16 +86,15 @@
8486
"@size-limit/file": "^8.1.0",
8587
"@size-limit/webpack": "^8.1.0",
8688
"@size-limit/webpack-why": "^8.1.0",
87-
"@types/jest": "^24.0.18",
89+
"@types/jest": "^29.5.8",
8890
"@types/lodash": "4.14.182",
8991
"@types/node": "^8.9.5",
9092
"@types/puppeteer": "1.3.0",
91-
"babel-jest": "^24.9.0",
9293
"babel-loader": "^8.3.0",
9394
"codecov": "^3.6.5",
9495
"glob": "^10.3.10",
95-
"jest": "^24.x.x",
96-
"jest-config": "24.8.0",
96+
"jest": "^29.7.0",
97+
"jest-environment-jsdom": "^29.7.0",
9798
"json-loader": "^0.5.7",
9899
"lerna": "^7.4.2",
99100
"license-check-and-add": "^4.0.5",
@@ -107,12 +108,12 @@
107108
"rollup-plugin-typescript": "^1.0.0",
108109
"size-limit": "^8.1.0",
109110
"terser-webpack-plugin": "^5.3.6",
110-
"ts-jest": "^24.x.x",
111+
"ts-jest": "^29.1.1",
111112
"ts-loader": "^9.4.3",
112113
"tslint": "^5.7.0",
113114
"tslint-config-airbnb": "^5.8.0",
114115
"typedoc": "^0.17.0",
115-
"typescript": "~3.8.3",
116+
"typescript": "^4.3.5",
116117
"typescript-coverage-report": "^0.6.4",
117118
"uuid-validate": "^0.0.3",
118119
"webpack": "^5.75.0",
@@ -127,9 +128,5 @@
127128
"**/glob/minipass": "6.0.2",
128129
"nx": "16.7.0",
129130
"next": "13.5.6"
130-
},
131-
"jest": {
132-
"resetMocks": true,
133-
"verbose": true
134131
}
135132
}

packages/adapter-nextjs/__tests__/api/generateServerClient.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('generateServerClientUsingCookies', () => {
5555
request: mockedReq,
5656
response: mockedRes,
5757
});
58-
}).toThrowError();
58+
}).toThrow();
5959
});
6060

6161
it('should call createRunWithAmplifyServerContext to create runWithAmplifyServerContext function', async () => {

packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,6 @@ describe('createCookieStorageAdapterFromNextServerContext', () => {
397397
request: undefined,
398398
response: new ServerResponse({} as any),
399399
} as any)
400-
).toThrowError();
400+
).toThrow();
401401
});
402402
});
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
...require('../../jest.config'),
3+
coverageThreshold: {
4+
global: {
5+
branches: 88,
6+
functions: 90,
7+
lines: 92,
8+
statements: 93,
9+
},
10+
},
11+
};

packages/adapter-nextjs/package.json

-49
Original file line numberDiff line numberDiff line change
@@ -71,54 +71,5 @@
7171
"lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
7272
"test": "npm run lint && jest -w 1 --coverage",
7373
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 90.31"
74-
},
75-
"jest": {
76-
"coveragePathIgnorePatterns": [
77-
"/node_modules/",
78-
"dist",
79-
"lib",
80-
"lib-esm",
81-
"__tests__/mocks"
82-
],
83-
"coverageThreshold": {
84-
"global": {
85-
"branches": 88,
86-
"functions": 90,
87-
"lines": 92,
88-
"statements": 93
89-
}
90-
},
91-
"globals": {
92-
"ts-jest": {
93-
"diagnostics": {
94-
"pathRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$"
95-
},
96-
"tsConfig": {
97-
"allowJs": true,
98-
"types": [
99-
"@types/jest"
100-
]
101-
}
102-
}
103-
},
104-
"moduleFileExtensions": [
105-
"ts",
106-
"tsx",
107-
"js",
108-
"json",
109-
"jsx"
110-
],
111-
"testEnvironment": "node",
112-
"testPathIgnorePatterns": [
113-
"xmlParser-fixture.ts",
114-
"testUtils",
115-
"cases",
116-
"mocks"
117-
],
118-
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$",
119-
"testURL": "http://localhost/",
120-
"transform": {
121-
"^.+\\.(js|jsx|ts|tsx)$": "ts-jest"
122-
}
12374
}
12475
}

packages/analytics/__tests__/apis/disable.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ describe('Pinpoint APIs: disable', () => {
1616
it('should disable Analytics', () => {
1717
disable();
1818

19-
expect(mockDisableAnalytics).toBeCalledTimes(1);
19+
expect(mockDisableAnalytics).toHaveBeenCalledTimes(1);
2020
});
2121
});

packages/analytics/__tests__/apis/enable.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ describe('Pinpoint APIs: enable', () => {
1616
it('should enable Analytics', () => {
1717
enable();
1818

19-
expect(mockEnableAnalytics).toBeCalledTimes(1);
19+
expect(mockEnableAnalytics).toHaveBeenCalledTimes(1);
2020
});
2121
});

packages/analytics/__tests__/providers/kinesis-firehose/apis/flushEvents.test.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { resolveCredentials } from '../../../../src/utils';
99
import {
1010
mockKinesisConfig,
1111
mockCredentialConfig,
12-
} from '../../../testUtils/mockConstants.test';
12+
} from '../../../testUtils/mockConstants';
1313
import { flushEvents } from '../../../../src/providers/kinesis-firehose/apis';
1414
import { ConsoleLogger } from '@aws-amplify/core';
1515

@@ -60,6 +60,9 @@ describe('Analytics Kinesis Firehose API: flushEvents', () => {
6060

6161
flushEvents();
6262
await new Promise(process.nextTick);
63-
expect(loggerWarnSpy).toBeCalledWith(expect.any(String), expect.any(Error));
63+
expect(loggerWarnSpy).toHaveBeenCalledWith(
64+
expect.any(String),
65+
expect.any(Error)
66+
);
6467
});
6568
});

packages/analytics/__tests__/providers/kinesis-firehose/apis/record.test.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { isAnalyticsEnabled, resolveCredentials } from '../../../../src/utils';
99
import {
1010
mockKinesisConfig,
1111
mockCredentialConfig,
12-
} from '../../../testUtils/mockConstants.test';
12+
} from '../../../testUtils/mockConstants';
1313
import { record } from '../../../../src/providers/kinesis-firehose';
1414
import { ConsoleLogger } from '@aws-amplify/core';
1515
import { RecordInput as KinesisFirehoseRecordInput } from '../../../../src/providers/kinesis-firehose/types';
@@ -54,7 +54,7 @@ describe('Analytics KinesisFirehose API: record', () => {
5454
record(mockRecordInput);
5555
await new Promise(process.nextTick);
5656
expect(mockGetEventBuffer).toHaveBeenCalledTimes(1);
57-
expect(mockAppend).toBeCalledWith(
57+
expect(mockAppend).toHaveBeenCalledWith(
5858
expect.objectContaining({
5959
region: mockKinesisConfig.region,
6060
streamName: mockRecordInput.streamName,
@@ -70,15 +70,18 @@ describe('Analytics KinesisFirehose API: record', () => {
7070
record(mockRecordInput);
7171

7272
await new Promise(process.nextTick);
73-
expect(loggerWarnSpy).toBeCalledWith(expect.any(String), expect.any(Error));
73+
expect(loggerWarnSpy).toHaveBeenCalledWith(
74+
expect.any(String),
75+
expect.any(Error)
76+
);
7477
});
7578

7679
it('logs and skip the event recoding if Analytics plugin is not enabled', async () => {
7780
mockIsAnalyticsEnabled.mockReturnValue(false);
7881
record(mockRecordInput);
7982
await new Promise(process.nextTick);
80-
expect(loggerDebugSpy).toBeCalledWith(expect.any(String));
81-
expect(mockGetEventBuffer).not.toBeCalled();
82-
expect(mockAppend).not.toBeCalled();
83+
expect(loggerDebugSpy).toHaveBeenCalledWith(expect.any(String));
84+
expect(mockGetEventBuffer).not.toHaveBeenCalled();
85+
expect(mockAppend).not.toHaveBeenCalled();
8386
});
8487
});

packages/analytics/__tests__/providers/kinesis-firehose/utils/getEventBuffer.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
mockBufferConfig,
88
mockCredentialConfig,
99
mockKinesisConfig,
10-
} from '../../../testUtils/mockConstants.test';
10+
} from '../../../testUtils/mockConstants';
1111

1212
jest.mock('../../../../src/utils');
1313

@@ -24,7 +24,7 @@ describe('KinesisFirehose Provider Util: getEventBuffer', () => {
2424
...mockCredentialConfig,
2525
});
2626

27-
expect(mockEventBuffer).toBeCalledWith(
27+
expect(mockEventBuffer).toHaveBeenCalledWith(
2828
mockBufferConfig,
2929
expect.any(Function)
3030
);
@@ -59,8 +59,8 @@ describe('KinesisFirehose Provider Util: getEventBuffer', () => {
5959

6060
await new Promise(process.nextTick);
6161

62-
expect(testBuffer1.flushAll).toBeCalledTimes(1);
63-
expect(testBuffer1.release).toBeCalledTimes(1);
62+
expect(testBuffer1.flushAll).toHaveBeenCalledTimes(1);
63+
expect(testBuffer1.release).toHaveBeenCalledTimes(1);
6464
expect(testBuffer1).not.toBe(testBuffer2);
6565
});
6666
});

packages/analytics/__tests__/providers/kinesis-firehose/utils/resolveConfig.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ describe('Analytics KinesisFirehose Provider Util: resolveConfig', () => {
4747

4848
it('throws if region is missing', () => {
4949
getConfigSpy.mockReturnValue({
50-
Analytics: { KinesisFirehose: { ...providedConfig, region: undefined } },
50+
Analytics: {
51+
KinesisFirehose: { ...providedConfig, region: undefined as any },
52+
},
5153
});
5254

5355
expect(resolveConfig).toThrow();

packages/analytics/__tests__/providers/kinesis/apis/flushEvents.test.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { resolveCredentials } from '../../../../src/utils';
66
import {
77
mockKinesisConfig,
88
mockCredentialConfig,
9-
} from '../../../testUtils/mockConstants.test';
9+
} from '../../../testUtils/mockConstants';
1010
import { getEventBuffer } from '../../../../src/providers/kinesis/utils/getEventBuffer';
1111
import { flushEvents } from '../../../../src/providers/kinesis/apis';
1212
import { ConsoleLogger } from '@aws-amplify/core';
@@ -59,6 +59,9 @@ describe('Analytics Kinesis API: flushEvents', () => {
5959

6060
flushEvents();
6161
await new Promise(process.nextTick);
62-
expect(loggerWarnSpy).toBeCalledWith(expect.any(String), expect.any(Error));
62+
expect(loggerWarnSpy).toHaveBeenCalledWith(
63+
expect.any(String),
64+
expect.any(Error)
65+
);
6366
});
6467
});

packages/analytics/__tests__/providers/kinesis/apis/record.test.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { isAnalyticsEnabled, resolveCredentials } from '../../../../src/utils';
77
import {
88
mockKinesisConfig,
99
mockCredentialConfig,
10-
} from '../../../testUtils/mockConstants.test';
10+
} from '../../../testUtils/mockConstants';
1111
import { record } from '../../../../src/providers/kinesis';
1212
import { ConsoleLogger } from '@aws-amplify/core';
1313
import { RecordInput as KinesisRecordInput } from '../../../../src/providers/kinesis/types';
@@ -54,7 +54,7 @@ describe('Analytics Kinesis API: record', () => {
5454
record(mockRecordInput);
5555
await new Promise(process.nextTick);
5656
expect(mockGetEventBuffer).toHaveBeenCalledTimes(1);
57-
expect(mockAppend).toBeCalledWith(
57+
expect(mockAppend).toHaveBeenCalledWith(
5858
expect.objectContaining({
5959
region: mockKinesisConfig.region,
6060
streamName: mockRecordInput.streamName,
@@ -71,15 +71,18 @@ describe('Analytics Kinesis API: record', () => {
7171
record(mockRecordInput);
7272

7373
await new Promise(process.nextTick);
74-
expect(loggerWarnSpy).toBeCalledWith(expect.any(String), expect.any(Error));
74+
expect(loggerWarnSpy).toHaveBeenCalledWith(
75+
expect.any(String),
76+
expect.any(Error)
77+
);
7578
});
7679

7780
it('logs and skip the event recoding if Analytics plugin is not enabled', async () => {
7881
mockIsAnalyticsEnabled.mockReturnValue(false);
7982
record(mockRecordInput);
8083
await new Promise(process.nextTick);
81-
expect(loggerDebugSpy).toBeCalledWith(expect.any(String));
82-
expect(mockGetEventBuffer).not.toBeCalled();
83-
expect(mockAppend).not.toBeCalled();
84+
expect(loggerDebugSpy).toHaveBeenCalledWith(expect.any(String));
85+
expect(mockGetEventBuffer).not.toHaveBeenCalled();
86+
expect(mockAppend).not.toHaveBeenCalled();
8487
});
8588
});

packages/analytics/__tests__/providers/kinesis/utils/getEventBuffer.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
mockBufferConfig,
88
mockKinesisConfig,
99
mockCredentialConfig,
10-
} from '../../../testUtils/mockConstants.test';
10+
} from '../../../testUtils/mockConstants';
1111

1212
jest.mock('../../../../src/utils');
1313

@@ -24,7 +24,7 @@ describe('Kinesis Provider Util: getEventBuffer', () => {
2424
...mockCredentialConfig,
2525
});
2626

27-
expect(mockEventBuffer).toBeCalledWith(
27+
expect(mockEventBuffer).toHaveBeenCalledWith(
2828
mockBufferConfig,
2929
expect.any(Function)
3030
);
@@ -58,8 +58,8 @@ describe('Kinesis Provider Util: getEventBuffer', () => {
5858
});
5959

6060
await new Promise(process.nextTick);
61-
expect(testBuffer1.flushAll).toBeCalledTimes(1);
62-
expect(testBuffer1.release).toBeCalledTimes(1);
61+
expect(testBuffer1.flushAll).toHaveBeenCalledTimes(1);
62+
expect(testBuffer1.release).toHaveBeenCalledTimes(1);
6363
expect(testBuffer1).not.toBe(testBuffer2);
6464
});
6565
});

packages/analytics/__tests__/providers/kinesis/utils/resolveConfig.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('Analytics Kinesis Provider Util: resolveConfig', () => {
4747

4848
it('throws if region is missing', () => {
4949
getConfigSpy.mockReturnValue({
50-
Analytics: { Kinesis: { ...kinesisConfig, region: undefined } },
50+
Analytics: { Kinesis: { ...kinesisConfig, region: undefined as any } },
5151
});
5252

5353
expect(resolveConfig).toThrow();

0 commit comments

Comments
 (0)