Skip to content

Commit 4896187

Browse files
committed
disable suspense test
1 parent 752e78f commit 4896187

File tree

1 file changed

+131
-131
lines changed

1 file changed

+131
-131
lines changed

packages/react-dom/src/__tests__/ReactDOMImageLoad-test.internal.js

Lines changed: 131 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111

1212
let React;
1313
let Scheduler;
14-
let ReactCache;
14+
// let ReactCache;
1515
let ReactDOM;
16-
let Suspense;
16+
// let Suspense;
1717
let originalCreateElement;
18-
let TextResource;
19-
let textResourceShouldFail;
18+
// let TextResource;
19+
// let textResourceShouldFail;
2020

2121
let images = [];
2222
let onLoadSpy = null;
@@ -48,21 +48,21 @@ function Text(props) {
4848
return props.text;
4949
}
5050

51-
function AsyncText(props) {
52-
const text = props.text;
53-
try {
54-
TextResource.read([props.text, props.ms]);
55-
Scheduler.unstable_yieldValue(text);
56-
return text;
57-
} catch (promise) {
58-
if (typeof promise.then === 'function') {
59-
Scheduler.unstable_yieldValue(`Suspend! [${text}]`);
60-
} else {
61-
Scheduler.unstable_yieldValue(`Error! [${text}]`);
62-
}
63-
throw promise;
64-
}
65-
}
51+
// function AsyncText(props) {
52+
// const text = props.text;
53+
// try {
54+
// TextResource.read([props.text, props.ms]);
55+
// Scheduler.unstable_yieldValue(text);
56+
// return text;
57+
// } catch (promise) {
58+
// if (typeof promise.then === 'function') {
59+
// Scheduler.unstable_yieldValue(`Suspend! [${text}]`);
60+
// } else {
61+
// Scheduler.unstable_yieldValue(`Error! [${text}]`);
62+
// }
63+
// throw promise;
64+
// }
65+
// }
6666

6767
function Img({src: maybeSrc, onLoad, useImageLoader, ref}) {
6868
const src = maybeSrc || 'default';
@@ -82,14 +82,14 @@ function loadImage(element) {
8282
element.dispatchEvent(event);
8383
}
8484

85-
describe.only('ReactDOMImageLoad', () => {
85+
describe('ReactDOMImageLoad', () => {
8686
beforeEach(() => {
8787
jest.resetModules();
8888
React = require('react');
8989
Scheduler = require('scheduler');
90-
ReactCache = require('react-cache');
90+
// ReactCache = require('react-cache');
9191
ReactDOM = require('react-dom');
92-
Suspense = React.Suspense;
92+
// Suspense = React.Suspense;
9393

9494
onLoadSpy = jest.fn(reactEvent => {
9595
const src = reactEvent.target.getAttribute('src');
@@ -102,54 +102,54 @@ describe.only('ReactDOMImageLoad', () => {
102102
nativeEvent.__originalDispatch = false;
103103
});
104104

105-
TextResource = ReactCache.unstable_createResource(
106-
([text, ms = 0]) => {
107-
let listeners = null;
108-
let status = 'pending';
109-
let value = null;
110-
return {
111-
then(resolve, reject) {
112-
switch (status) {
113-
case 'pending': {
114-
if (listeners === null) {
115-
listeners = [{resolve, reject}];
116-
setTimeout(() => {
117-
if (textResourceShouldFail) {
118-
Scheduler.unstable_yieldValue(
119-
`Promise rejected [${text}]`,
120-
);
121-
status = 'rejected';
122-
value = new Error('Failed to load: ' + text);
123-
listeners.forEach(listener => listener.reject(value));
124-
} else {
125-
Scheduler.unstable_yieldValue(
126-
`Promise resolved [${text}]`,
127-
);
128-
status = 'resolved';
129-
value = text;
130-
listeners.forEach(listener => listener.resolve(value));
131-
}
132-
}, ms);
133-
} else {
134-
listeners.push({resolve, reject});
135-
}
136-
break;
137-
}
138-
case 'resolved': {
139-
resolve(value);
140-
break;
141-
}
142-
case 'rejected': {
143-
reject(value);
144-
break;
145-
}
146-
}
147-
},
148-
};
149-
},
150-
([text, ms]) => text,
151-
);
152-
textResourceShouldFail = false;
105+
// TextResource = ReactCache.unstable_createResource(
106+
// ([text, ms = 0]) => {
107+
// let listeners = null;
108+
// let status = 'pending';
109+
// let value = null;
110+
// return {
111+
// then(resolve, reject) {
112+
// switch (status) {
113+
// case 'pending': {
114+
// if (listeners === null) {
115+
// listeners = [{resolve, reject}];
116+
// setTimeout(() => {
117+
// if (textResourceShouldFail) {
118+
// Scheduler.unstable_yieldValue(
119+
// `Promise rejected [${text}]`,
120+
// );
121+
// status = 'rejected';
122+
// value = new Error('Failed to load: ' + text);
123+
// listeners.forEach(listener => listener.reject(value));
124+
// } else {
125+
// Scheduler.unstable_yieldValue(
126+
// `Promise resolved [${text}]`,
127+
// );
128+
// status = 'resolved';
129+
// value = text;
130+
// listeners.forEach(listener => listener.resolve(value));
131+
// }
132+
// }, ms);
133+
// } else {
134+
// listeners.push({resolve, reject});
135+
// }
136+
// break;
137+
// }
138+
// case 'resolved': {
139+
// resolve(value);
140+
// break;
141+
// }
142+
// case 'rejected': {
143+
// reject(value);
144+
// break;
145+
// }
146+
// }
147+
// },
148+
// };
149+
// },
150+
// ([text, ms]) => text,
151+
// );
152+
// textResourceShouldFail = false;
153153

154154
images = [];
155155

@@ -442,67 +442,67 @@ describe.only('ReactDOMImageLoad', () => {
442442
expect(onLoadSpy).not.toHaveBeenCalled();
443443
});
444444

445-
fit('captures the load event if it happens in a suspended subtree and replays it between layout and passive effects on resumption', async function() {
446-
function SuspendingWithImage() {
447-
Scheduler.unstable_yieldValue('SuspendingWithImage');
448-
return (
449-
<Suspense fallback={<Text text="Loading..." />}>
450-
<AsyncText text="A" ms={100} />
451-
<PhaseMarkers>
452-
<Img onLoad={onLoadSpy} />
453-
</PhaseMarkers>
454-
</Suspense>
455-
);
456-
}
457-
458-
const container = document.createElement('div');
459-
const root = ReactDOM.createRoot(container);
460-
461-
React.startTransition(() => root.render(<SuspendingWithImage />));
462-
463-
expect(Scheduler).toFlushAndYield([
464-
'SuspendingWithImage',
465-
'Suspend! [A]',
466-
'render start',
467-
'Img default',
468-
'Loading...',
469-
]);
470-
let img = last(images);
471-
loadImage(img);
472-
expect(Scheduler).toHaveYielded(['actualLoadSpy [default]']);
473-
expect(onLoadSpy).not.toHaveBeenCalled();
474-
475-
// Flush some of the time
476-
jest.advanceTimersByTime(50);
477-
// Still nothing...
478-
expect(Scheduler).toFlushWithoutYielding();
479-
480-
// Flush the promise completely
481-
jest.advanceTimersByTime(50);
482-
// Renders successfully
483-
expect(Scheduler).toHaveYielded(['Promise resolved [A]']);
484-
485-
expect(Scheduler).toFlushAndYieldThrough([
486-
'A',
487-
// img was recreated on unsuspended tree causing new load event
488-
'render start',
489-
'Img default',
490-
'last layout',
491-
]);
492-
493-
expect(images.length).toBe(2);
494-
img = last(images);
495-
expect(img.__needsDispatch).toBe(true);
496-
loadImage(img);
497-
expect(Scheduler).toHaveYielded([
498-
'actualLoadSpy [default]',
499-
'onLoadSpy [default]',
500-
]);
501-
502-
expect(Scheduler).toFlushAndYield(['last passive']);
503-
504-
expect(onLoadSpy).toHaveBeenCalledTimes(1);
505-
});
445+
// it('captures the load event if it happens in a suspended subtree and replays it between layout and passive effects on resumption', async function() {
446+
// function SuspendingWithImage() {
447+
// Scheduler.unstable_yieldValue('SuspendingWithImage');
448+
// return (
449+
// <Suspense fallback={<Text text="Loading..." />}>
450+
// <AsyncText text="A" ms={100} />
451+
// <PhaseMarkers>
452+
// <Img onLoad={onLoadSpy} />
453+
// </PhaseMarkers>
454+
// </Suspense>
455+
// );
456+
// }
457+
458+
// const container = document.createElement('div');
459+
// const root = ReactDOM.createRoot(container);
460+
461+
// React.startTransition(() => root.render(<SuspendingWithImage />));
462+
463+
// expect(Scheduler).toFlushAndYield([
464+
// 'SuspendingWithImage',
465+
// 'Suspend! [A]',
466+
// 'render start',
467+
// 'Img default',
468+
// 'Loading...',
469+
// ]);
470+
// let img = last(images);
471+
// loadImage(img);
472+
// expect(Scheduler).toHaveYielded(['actualLoadSpy [default]']);
473+
// expect(onLoadSpy).not.toHaveBeenCalled();
474+
475+
// // Flush some of the time
476+
// jest.advanceTimersByTime(50);
477+
// // Still nothing...
478+
// expect(Scheduler).toFlushWithoutYielding();
479+
480+
// // Flush the promise completely
481+
// jest.advanceTimersByTime(50);
482+
// // Renders successfully
483+
// expect(Scheduler).toHaveYielded(['Promise resolved [A]']);
484+
485+
// expect(Scheduler).toFlushAndYieldThrough([
486+
// 'A',
487+
// // img was recreated on unsuspended tree causing new load event
488+
// 'render start',
489+
// 'Img default',
490+
// 'last layout',
491+
// ]);
492+
493+
// expect(images.length).toBe(2);
494+
// img = last(images);
495+
// expect(img.__needsDispatch).toBe(true);
496+
// loadImage(img);
497+
// expect(Scheduler).toHaveYielded([
498+
// 'actualLoadSpy [default]',
499+
// 'onLoadSpy [default]',
500+
// ]);
501+
502+
// expect(Scheduler).toFlushAndYield(['last passive']);
503+
504+
// expect(onLoadSpy).toHaveBeenCalledTimes(1);
505+
// });
506506

507507
it('correctly replays the last img load even when a yield + update causes the host element to change', async function() {
508508
let externalSetSrc = null;

0 commit comments

Comments
 (0)