Improved Profiler commit hooks test (#20053)
Previously the tests didn't ensure that time spent during cascading render was not included in duration reported by commit hooks.
Brian Vaughn committed
Oct 19, 2020 at 09:36 UTC
7b6cac95229be79f4f7504f2ccd87d2a0a0f87e2
1 file changed
+9
-6
packages/react/src/__tests__/ReactProfiler-test.internal.js
+9
-6
@@ -1400,6 +1400,7 @@ describe('Profiler', () => {
1400
1401
const ComponentWithEffects = ({shouldCascade}) => {
1402
const [didCascade, setDidCascade] = React.useState(false);
1403
+ Scheduler.unstable_advanceTime(100000000);
1404
React.useLayoutEffect(() => {
1405
if (shouldCascade && !didCascade) {
1406
setDidCascade(true);
@@ -1426,6 +1427,7 @@ describe('Profiler', () => {
1427
}
1428
}
1429
render() {
1430
+ Scheduler.unstable_advanceTime(1000000000);
1431
return null;
1432
}
1433
}
@@ -1447,7 +1449,7 @@ describe('Profiler', () => {
1449
expect(call[0]).toBe('mount-test');
1450
expect(call[1]).toBe('mount');
1451
expect(call[2]).toBe(1010); // durations
1450
- expect(call[3]).toBe(1); // commit start time (before mutations or effects)
1452
+ expect(call[3]).toBe(1100000001); // commit start time (before mutations or effects)
1453
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
1454
1455
call = callback.mock.calls[1];
@@ -1456,7 +1458,7 @@ describe('Profiler', () => {
1458
expect(call[0]).toBe('mount-test');
1459
expect(call[1]).toBe('update');
1460
expect(call[2]).toBe(130); // durations
1459
- expect(call[3]).toBe(1011); // commit start time (before mutations or effects)
1461
+ expect(call[3]).toBe(1200001011); // commit start time (before mutations or effects)
1462
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
1463
1464
Scheduler.unstable_advanceTime(1);
@@ -1476,7 +1478,7 @@ describe('Profiler', () => {
1478
expect(call[0]).toBe('update-test');
1479
expect(call[1]).toBe('update');
1480
expect(call[2]).toBe(10130); // durations
1479
- expect(call[3]).toBe(1142); // commit start time (before mutations or effects)
1481
+ expect(call[3]).toBe(2300001142); // commit start time (before mutations or effects)
1482
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
1483
1484
call = callback.mock.calls[3];
@@ -1485,7 +1487,7 @@ describe('Profiler', () => {
1487
expect(call[0]).toBe('update-test');
1488
expect(call[1]).toBe('update');
1489
expect(call[2]).toBe(10000); // durations
1488
- expect(call[3]).toBe(11272); // commit start time (before mutations or effects)
1490
+ expect(call[3]).toBe(3300011272); // commit start time (before mutations or effects)
1491
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
1492
});
1493
@@ -1966,6 +1968,7 @@ describe('Profiler', () => {
1968
1969
const ComponentWithEffects = () => {
1970
const [didMount, setDidMount] = React.useState(false);
1971
+ Scheduler.unstable_advanceTime(1000);
1972
React.useEffect(() => {
1973
if (!didMount) {
1974
setDidMount(true);
@@ -1996,7 +1999,7 @@ describe('Profiler', () => {
1999
expect(call[0]).toBe('mount-test');
2000
expect(call[1]).toBe('mount');
2001
expect(call[2]).toBe(10); // durations
1999
- expect(call[3]).toBe(1); // commit start time (before mutations or effects)
2002
+ expect(call[3]).toBe(1001); // commit start time (before mutations or effects)
2003
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
2004
2005
call = callback.mock.calls[1];
@@ -2005,7 +2008,7 @@ describe('Profiler', () => {
2008
expect(call[0]).toBe('mount-test');
2009
expect(call[1]).toBe('update');
2010
expect(call[2]).toBe(130); // durations
2008
- expect(call[3]).toBe(11); // commit start time (before mutations or effects)
2011
+ expect(call[3]).toBe(2011); // commit start time (before mutations or effects)
2012
expect(call[4]).toEqual(enableSchedulerTracing ? new Set() : undefined); // interaction events
2013
});
2014