Skip to content

Commit 023ff45

Browse files
committed
test on react 16.9
1 parent 9d7312d commit 023ff45

File tree

6 files changed

+74
-52
lines changed

6 files changed

+74
-52
lines changed

package.json

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@
8181
"@babel/cli": "^7.5.5",
8282
"@babel/core": "^7.5.5",
8383
"@testing-library/react": "^9.1.1",
84-
"@testing-library/react-hooks": "^1.1.0",
84+
"@testing-library/react-hooks": "^2.0.1",
8585
"@types/jest": "^24.0.17",
8686
"@types/lodash": "^4.14.136",
8787
"@types/nock": "^10.0.3",
88-
"@types/react": "^16.8.24",
88+
"@types/react": "^16.9.1",
8989
"@typescript-eslint/eslint-plugin": "^1.13.0",
9090
"@typescript-eslint/parser": "^1.13.0",
9191
"@zerollup/ts-transform-paths": "^1.7.3",
@@ -102,9 +102,9 @@
102102
"jest": "^24.8.0",
103103
"nock": "^10.0.6",
104104
"prettier-eslint-cli": "^5.0.0",
105-
"react": "16.8.6",
106-
"react-dom": "16.8.6",
107-
"react-test-renderer": "^16.8.6",
105+
"react": "16.9.0",
106+
"react-dom": "16.9.0",
107+
"react-test-renderer": "^16.9.0",
108108
"rollup": "^1.17.0",
109109
"rollup-plugin-babel": "^4.3.3",
110110
"rollup-plugin-commonjs": "^10.0.1",
@@ -113,7 +113,7 @@
113113
"rollup-plugin-node-resolve": "^5.2.0",
114114
"rollup-plugin-replace": "^2.2.0",
115115
"rollup-plugin-terser": "^5.1.1",
116-
"scheduler": "^0.13.6",
116+
"scheduler": "^0.15.0",
117117
"ts-jest": "^24.0.2",
118118
"ttypescript": "^1.5.7",
119119
"typescript": "^3.5.3"
@@ -129,10 +129,14 @@
129129
"superagent": "^5.1.0"
130130
},
131131
"peerDependencies": {
132+
"@testing-library/react-hooks": "^1.1.0 || ^2.0.0",
132133
"@types/react": "^16.8.2",
133134
"react": "^16.8.2"
134135
},
135136
"peerDependenciesMeta": {
137+
"@testing-library/react-hooks": {
138+
"optional": true
139+
},
136140
"@types/react": {
137141
"optional": true
138142
}

src/react-integration/provider/__tests__/middleware.tsx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import React from 'react';
2-
// eslint-disable-next-line @typescript-eslint/camelcase
3-
import { unstable_scheduleCallback } from 'scheduler';
2+
import {
3+
// eslint-disable-next-line @typescript-eslint/camelcase
4+
unstable_advanceTime,
5+
// eslint-disable-next-line @typescript-eslint/camelcase
6+
unstable_scheduleCallback,
7+
// eslint-disable-next-line @typescript-eslint/camelcase
8+
unstable_NormalPriority,
9+
} from 'scheduler/unstable_mock';
410
import { renderHook, act } from '@testing-library/react-hooks';
511
import createEnhancedReducerHook from '../middleware';
612
import { MiddlewareAPI } from '../../../types';
@@ -45,7 +51,12 @@ describe('createEnhancedReducerHook', () => {
4551
callBefore(getState());
4652
next(action);
4753
// eslint-disable-next-line @typescript-eslint/camelcase
48-
unstable_scheduleCallback(() => callAfter(getState()), {});
54+
unstable_scheduleCallback(
55+
// eslint-disable-next-line @typescript-eslint/camelcase
56+
unstable_NormalPriority,
57+
() => callAfter(getState()),
58+
{},
59+
);
4960
};
5061
};
5162

@@ -155,7 +166,6 @@ describe('createEnhancedReducerHook', () => {
155166
});
156167

157168
test('should work with middlewares that getState()', async () => {
158-
jest.useFakeTimers();
159169
const callBefore = jest.fn();
160170
const callAfter = jest.fn();
161171
const logger = makeStatefulMiddleware({ callBefore, callAfter });
@@ -174,7 +184,8 @@ describe('createEnhancedReducerHook', () => {
174184
act(() => {
175185
dispatch(action);
176186
});
177-
jest.runAllTimers();
187+
// eslint-disable-next-line @typescript-eslint/camelcase
188+
unstable_advanceTime(100000);
178189
[state, dispatch] = result.current;
179190
expect(callBefore.mock.calls.length).toBe(1);
180191
expect(callAfter.mock.calls.length).toBe(1);
@@ -185,7 +196,8 @@ describe('createEnhancedReducerHook', () => {
185196
act(() => {
186197
dispatch(action);
187198
});
188-
jest.runAllTimers();
199+
// eslint-disable-next-line @typescript-eslint/camelcase
200+
unstable_advanceTime(100000);
189201
expect(callBefore.mock.calls[1][0]).toEqual({ counter: 1 });
190202
expect(callAfter.mock.calls[1][0]).toEqual({ counter: 2 });
191203
});

src/types/scheduler.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ export function unstable_runWithPriority(
1616
eventHandler: any,
1717
): any;
1818
export function unstable_scheduleCallback(
19+
priorityLevel: number,
1920
callback: any,
20-
deprecated_options: any,
21+
options: any,
2122
): any;
2223
export function unstable_shouldYield(): any;
2324
export function unstable_wrapCallback(callback: any): any;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* eslint @typescript-eslint/camelcase: 0 */
2+
export * from '../scheduler';
3+
export function unstable_flushAllWithoutAsserting(): void;
4+
export function unstable_flushNumberOfYields(): void;
5+
export function unstable_flushExpired(): void;
6+
export function unstable_clearYields(): void;
7+
export function unstable_flushUntilNextPaint(): void;
8+
export function unstable_flushAll(): void;
9+
export function unstable_yieldValue(): void;
10+
export function unstable_advanceTime(ms: number): void;

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"baseUrl": "./src", /* Base directory to resolve non-absolute module names. */
4343
"paths": {
4444
"scheduler": ["types/scheduler.d.ts"],
45+
"scheduler/unstable_mock": ["types/scheduler/unstable_mock.d.ts"],
4546
"~/*": ["*"]
4647
}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
4748
// "rootDirs": ["./src"], /* List of root folders whose combined content represents the structure of the project at runtime. */

yarn.lock

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,7 +1017,7 @@
10171017
dependencies:
10181018
regenerator-runtime "^0.13.2"
10191019

1020-
"@babel/runtime@^7.5.5":
1020+
"@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5":
10211021
version "7.5.5"
10221022
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
10231023
integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==
@@ -1288,14 +1288,14 @@
12881288
pretty-format "^24.8.0"
12891289
wait-for-expect "^1.3.0"
12901290

1291-
"@testing-library/react-hooks@^1.1.0":
1292-
version "1.1.0"
1293-
resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-1.1.0.tgz#14b6b5c7c3d0e2cb3e55e9cbb248b44321641c64"
1294-
integrity sha512-piE/ceQoNf134FFVXBABDbttBJ8eLPD4eg7zIciVJv92RyvoIsBHCvvG8Vd4IG5pyuWYrkLsZTO8ucZBwa4twA==
1291+
"@testing-library/react-hooks@^2.0.1":
1292+
version "2.0.1"
1293+
resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-2.0.1.tgz#1c3ec40882d0830df3078ddae0056fdf7366c81d"
1294+
integrity sha512-MLTvWX7/csq/uQzP4WJntGz0QJDq6H4EzjV0VTL5YJE7KBZbaQ9DGT0IbtjuB33L4R4YKZ55rGZQ5eL+WiZtQA==
12951295
dependencies:
1296-
"@babel/runtime" "^7.4.2"
1297-
"@types/react" "^16.8.22"
1298-
"@types/react-test-renderer" "^16.8.2"
1296+
"@babel/runtime" "^7.5.4"
1297+
"@types/react" ">=16.9.0"
1298+
"@types/react-test-renderer" ">=16.9.0"
12991299

13001300
"@testing-library/react@^9.1.1":
13011301
version "9.1.1"
@@ -1449,14 +1449,14 @@
14491449
dependencies:
14501450
"@types/react" "*"
14511451

1452-
"@types/react-test-renderer@^16.8.2":
1452+
"@types/react-test-renderer@>=16.9.0":
14531453
version "16.9.0"
14541454
resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.0.tgz#d60f530ecf4c906721511603cca711b4fa830d41"
14551455
integrity sha512-bN5EyjtuTY35xX7N5j0KP1vg5MpUXHpFTX6tGsqkNOthjNvet4VQOYRxFh+NT5cDSJrATmAFK9NLeYZ4mp/o0Q==
14561456
dependencies:
14571457
"@types/react" "*"
14581458

1459-
"@types/react@*", "@types/react@^16.8.22", "@types/react@^16.8.24":
1459+
"@types/react@*", "@types/react@>=16.9.0", "@types/react@^16.9.1":
14601460
version "16.9.1"
14611461
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.1.tgz#862c83b4c9d5cd116e42fd9a4f3694843cd2c051"
14621462
integrity sha512-jGM2x8F7m7/r+81N/BOaUKVwbC5Cdw6ExlWEUpr77XPwVeNvAppnPEnMMLMfxRDYL8FPEX8MHjwtD2NQMJ0yyQ==
@@ -6578,45 +6578,39 @@ rc@^1.2.7:
65786578
minimist "^1.2.0"
65796579
strip-json-comments "~2.0.1"
65806580

6581-
react-dom@16.8.6:
6582-
version "16.8.6"
6583-
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
6584-
integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
6581+
react-dom@16.9.0:
6582+
version "16.9.0"
6583+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
6584+
integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==
65856585
dependencies:
65866586
loose-envify "^1.1.0"
65876587
object-assign "^4.1.1"
65886588
prop-types "^15.6.2"
6589-
scheduler "^0.13.6"
6589+
scheduler "^0.15.0"
65906590

6591-
react-is@^16.8.1, react-is@^16.8.4:
6592-
version "16.8.4"
6593-
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2"
6594-
integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==
6595-
6596-
react-is@^16.8.6:
6597-
version "16.8.6"
6598-
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
6599-
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
6591+
react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0:
6592+
version "16.9.0"
6593+
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
6594+
integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
66006595

6601-
react-test-renderer@^16.8.6:
6602-
version "16.8.6"
6603-
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1"
6604-
integrity sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==
6596+
react-test-renderer@^16.9.0:
6597+
version "16.9.0"
6598+
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9"
6599+
integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ==
66056600
dependencies:
66066601
object-assign "^4.1.1"
66076602
prop-types "^15.6.2"
6608-
react-is "^16.8.6"
6609-
scheduler "^0.13.6"
6603+
react-is "^16.9.0"
6604+
scheduler "^0.15.0"
66106605

6611-
react@16.8.6:
6612-
version "16.8.6"
6613-
resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
6614-
integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
6606+
react@16.9.0:
6607+
version "16.9.0"
6608+
resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
6609+
integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==
66156610
dependencies:
66166611
loose-envify "^1.1.0"
66176612
object-assign "^4.1.1"
66186613
prop-types "^15.6.2"
6619-
scheduler "^0.13.6"
66206614

66216615
read-pkg-up@^2.0.0:
66226616
version "2.0.0"
@@ -7107,10 +7101,10 @@ sax@^1.2.4:
71077101
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
71087102
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
71097103

7110-
scheduler@^0.13.6:
7111-
version "0.13.6"
7112-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
7113-
integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
7104+
scheduler@^0.15.0:
7105+
version "0.15.0"
7106+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e"
7107+
integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==
71147108
dependencies:
71157109
loose-envify "^1.1.0"
71167110
object-assign "^4.1.1"

0 commit comments

Comments
 (0)