@samitouri / QOS-React / commits / 7b6cac9522

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