Skip to content

Commit c2d5818

Browse files
committed
Adjust tests for React 18
1 parent f5bfc10 commit c2d5818

6 files changed

+67
-42
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"@semantic-release/npm": "^7.0.5",
8181
"@storybook/addon-actions": "^6.3.4",
8282
"@storybook/react": "^6.3.4",
83-
"@testing-library/react": "^12.1.2",
83+
"@testing-library/react": "alpha",
8484
"@typescript-eslint/eslint-plugin": "^4.26.1",
8585
"astroturf": "^0.10.4",
8686
"babel-eslint": "^10.1.0",

test/CSSTransition-test.js

+30-19
Original file line numberDiff line numberDiff line change
@@ -146,37 +146,48 @@ describe('CSSTransition', () => {
146146
);
147147
});
148148

149-
it('should lose the "*-appear-done" class after leaving and entering again', (done) => {
149+
it('should lose the "*-appear-done" class after leaving and entering again', async () => {
150150
const nodeRef = React.createRef();
151+
let handleEntered;
152+
let onEntered = new Promise((resolve) => {
153+
handleEntered = resolve;
154+
});
155+
let handleExited;
156+
const onExited = new Promise((resolve) => {
157+
handleExited = resolve;
158+
});
151159
const { setProps } = render(
152160
<CSSTransition
153161
timeout={10}
154162
nodeRef={nodeRef}
155163
classNames="appear-test"
156164
in={true}
157165
appear={true}
158-
onEntered={() => {
159-
setProps({
160-
in: false,
161-
onEntered: () => {},
162-
onExited: () => {
163-
expect(nodeRef.current.className).toBe('appear-test-exit-done');
164-
setProps({
165-
in: true,
166-
onEntered: () => {
167-
expect(nodeRef.current.className).toBe(
168-
'appear-test-enter-done'
169-
);
170-
done();
171-
},
172-
});
173-
},
174-
});
175-
}}
166+
onEntered={handleEntered}
176167
>
177168
<div ref={nodeRef} />
178169
</CSSTransition>
179170
);
171+
172+
await onEntered;
173+
setProps({
174+
in: false,
175+
onEntered: () => {},
176+
onExited: handleExited,
177+
});
178+
179+
await onExited;
180+
expect(nodeRef.current.className).toBe('appear-test-exit-done');
181+
onEntered = new Promise((resolve) => {
182+
handleEntered = resolve;
183+
});
184+
setProps({
185+
in: true,
186+
onEntered: handleEntered,
187+
});
188+
189+
await onEntered;
190+
expect(nodeRef.current.className).toBe('appear-test-enter-done');
180191
});
181192

182193
it('should not add undefined when appearDone is not defined', (done) => {

test/SwitchTransition-test.js

+6
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ describe('SwitchTransition', () => {
106106
act(() => {
107107
jest.runAllTimers();
108108
});
109+
act(() => {
110+
jest.runAllTimers();
111+
});
109112
expect(log).toEqual([
110113
'exit',
111114
'exiting',
@@ -137,6 +140,9 @@ describe('SwitchTransition', () => {
137140
act(() => {
138141
jest.runAllTimers();
139142
});
143+
act(() => {
144+
jest.runAllTimers();
145+
});
140146
expect(log).toEqual([
141147
'enter',
142148
'entering',

test/Transition-test.js

+19-11
Original file line numberDiff line numberDiff line change
@@ -449,25 +449,33 @@ describe('Transition', () => {
449449
setProps({ in: true });
450450
});
451451

452-
it('should stay mounted after exiting', (done) => {
452+
it('should stay mounted after exiting', async () => {
453+
let handleEntered;
454+
const onEntered = new Promise((resolve) => {
455+
handleEntered = resolve;
456+
});
457+
let handleExited;
458+
const onExited = new Promise((resolve) => {
459+
handleExited = resolve;
460+
});
453461
const { container, setProps } = render(
454462
<MountTransition
455463
in={false}
456-
onEntered={() => {
457-
expect(container.textContent).toEqual(`status: ${ENTERED}`);
458-
459-
setProps({ in: false });
460-
}}
461-
onExited={() => {
462-
expect(container.textContent).toEqual(`status: ${EXITED}`);
463-
464-
done();
465-
}}
464+
onEntered={handleEntered}
465+
onExited={handleExited}
466466
/>
467467
);
468468

469469
expect(container.textContent).toEqual('');
470470
setProps({ in: true });
471+
472+
await onEntered;
473+
expect(container.textContent).toEqual(`status: ${ENTERED}`);
474+
475+
setProps({ in: false });
476+
477+
await onExited;
478+
expect(container.textContent).toEqual(`status: ${EXITED}`);
471479
});
472480
});
473481

test/TransitionGroup-test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ describe('TransitionGroup', () => {
9292
act(() => {
9393
jest.runAllTimers();
9494
});
95-
expect(log).toEqual(['appear', 'appearing', 'appeared']);
95+
expect(log).toEqual(['appear', 'appear', 'appearing', 'appeared']);
9696

9797
log = [];
9898
renderStrict(<Parent count={2} />, container);
9999
act(() => {
100100
jest.runAllTimers();
101101
});
102-
expect(log).toEqual(['enter', 'entering', 'entered']);
102+
expect(log).toEqual(['enter', 'enter', 'entering', 'entered']);
103103

104104
log = [];
105105
renderStrict(<Parent count={1} />, container);

yarn.lock

+9-9
Original file line numberDiff line numberDiff line change
@@ -3503,10 +3503,10 @@
35033503
resolve-from "^5.0.0"
35043504
store2 "^2.12.0"
35053505

3506-
"@testing-library/dom@^8.0.0":
3507-
version "8.11.1"
3508-
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.11.1.tgz#03fa2684aa09ade589b460db46b4c7be9fc69753"
3509-
integrity sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==
3506+
"@testing-library/dom@^8.5.0":
3507+
version "8.11.2"
3508+
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.11.2.tgz#fc110c665a066c2287be765e4a35ba8dad737015"
3509+
integrity sha512-idsS/cqbYudXcVWngc1PuWNmXs416oBy2g/7Q8QAUREt5Z3MUkAL2XJD7xazLJ6esDfqRDi/ZBxk+OPPXitHRw==
35103510
dependencies:
35113511
"@babel/code-frame" "^7.10.4"
35123512
"@babel/runtime" "^7.12.5"
@@ -3517,13 +3517,13 @@
35173517
lz-string "^1.4.4"
35183518
pretty-format "^27.0.2"
35193519

3520-
"@testing-library/react@^12.1.2":
3521-
version "12.1.2"
3522-
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.2.tgz#f1bc9a45943461fa2a598bb4597df1ae044cfc76"
3523-
integrity sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==
3520+
"@testing-library/react@alpha":
3521+
version "13.0.0-alpha.5"
3522+
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.0.0-alpha.5.tgz#29bfc36b550e2a1025cbebf7254d5a0a46cb58c5"
3523+
integrity sha512-QrxKC/7pTE0ze3wLZNaenGJqsLcbAJL71XqU/ryJTL2pqZBjiJHuxZavl2ZQAxnBQkDQF9oh9my3bKPstWfnhA==
35243524
dependencies:
35253525
"@babel/runtime" "^7.12.5"
3526-
"@testing-library/dom" "^8.0.0"
3526+
"@testing-library/dom" "^8.5.0"
35273527

35283528
"@tootallnate/once@1":
35293529
version "1.0.0"

0 commit comments

Comments
 (0)