Skip to content

Commit 8b1e889

Browse files
author
Juan Tejada
committed
Update parseHookNames-test to assert hook map from extended source map is being used
1 parent 3ce6d68 commit 8b1e889

File tree

1 file changed

+40
-46
lines changed

1 file changed

+40
-46
lines changed

packages/react-devtools-extensions/src/__tests__/parseHookNames-test.js

Lines changed: 40 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -423,21 +423,11 @@ describe('parseHookNames', () => {
423423
});
424424

425425
describe('extended source maps', () => {
426-
let parseMock;
427-
428426
beforeEach(() => {
429-
parseMock = jest.fn();
430-
jest.mock('@babel/parser', () => {
431-
const actual = jest.requireActual('@babel/parser');
432-
const parse = (...args) => {
433-
parseMock();
434-
return actual.parse(...args);
435-
};
436-
return {
437-
parse,
438-
...actual,
439-
};
440-
});
427+
const babelParser = require('@babel/parser');
428+
const generateHookMapModule = require('../generateHookMap');
429+
jest.spyOn(babelParser, 'parse');
430+
jest.spyOn(generateHookMapModule, 'decodeHookMap');
441431
});
442432

443433
it('should work for simple components', async () => {
@@ -447,16 +437,16 @@ describe('parseHookNames', () => {
447437
expectHookNamesToEqual(hookNames, [
448438
'count', // useState
449439
]);
450-
expect(parseMock).toHaveBeenCalledTimes(0);
440+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
441+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
451442
}
452443

453-
await test('./__source__/Example'); // original source (uncompiled)
454444
await test(
455445
'./__source__/__compiled__/inline/fb-sources-extended/Example',
456-
); // x_fb_sources extended inline source map
446+
); // x_facebook_sources extended inline source map
457447
await test(
458448
'./__source__/__compiled__/external/fb-sources-extended/Example',
459-
); // x_fb_sources extended external source map
449+
); // x_facebook_sources extended external source map
460450
await test(
461451
'./__source__/__compiled__/inline/react-sources-extended/Example',
462452
); // x_react_sources extended inline source map
@@ -490,16 +480,16 @@ describe('parseHookNames', () => {
490480
'handleToggle', // useCallback
491481
]);
492482

493-
expect(parseMock).toHaveBeenCalledTimes(0);
483+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
484+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
494485
}
495486

496-
await test('./__source__/ToDoList'); // original source (uncompiled)
497487
await test(
498488
'./__source__/__compiled__/inline/fb-sources-extended/ToDoList',
499-
); // x_fb_sources extended inline source map
489+
); // x_facebook_sources extended inline source map
500490
await test(
501491
'./__source__/__compiled__/external/fb-sources-extended/ToDoList',
502-
); // x_fb_sources extended external source map
492+
); // x_facebook_sources extended external source map
503493
await test(
504494
'./__source__/__compiled__/inline/react-sources-extended/ToDoList',
505495
); // x_react_sources extended inline source map
@@ -518,16 +508,16 @@ describe('parseHookNames', () => {
518508
'isDarkMode', // useIsDarkMode()
519509
'isDarkMode', // useIsDarkMode -> useState()
520510
]);
521-
expect(parseMock).toHaveBeenCalledTimes(0);
511+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
512+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
522513
}
523514

524-
await test('./__source__/ComponentWithCustomHook'); // original source (uncompiled)
525515
await test(
526516
'./__source__/__compiled__/inline/fb-sources-extended/ComponentWithCustomHook',
527-
); // x_fb_sources extended inline source map
517+
); // x_facebook_sources extended inline source map
528518
await test(
529519
'./__source__/__compiled__/external/fb-sources-extended/ComponentWithCustomHook',
530-
); // x_fb_sources extended external source map
520+
); // x_facebook_sources extended external source map
531521
await test(
532522
'./__source__/__compiled__/inline/react-sources-extended/ComponentWithCustomHook',
533523
); // x_react_sources extended inline source map
@@ -546,15 +536,16 @@ describe('parseHookNames', () => {
546536
'darkMode', // useDarkMode()
547537
'isDarkMode', // useState()
548538
]);
549-
expect(parseMock).toHaveBeenCalledTimes(0);
539+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
540+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
550541
}
551542

552543
await test(
553544
'./__source__/__compiled__/inline/fb-sources-extended/ComponentUsingHooksIndirectly',
554-
); // x_fb_sources extended inline source map
545+
); // x_facebook_sources extended inline source map
555546
await test(
556547
'./__source__/__compiled__/external/fb-sources-extended/ComponentUsingHooksIndirectly',
557-
); // x_fb_sources extended external source map
548+
); // x_facebook_sources extended external source map
558549
await test(
559550
'./__source__/__compiled__/inline/react-sources-extended/ComponentUsingHooksIndirectly',
560551
); // x_react_sources extended inline source map
@@ -580,15 +571,16 @@ describe('parseHookNames', () => {
580571
expectHookNamesToEqual(innerHookNames, [
581572
'state', // useState()
582573
]);
583-
expect(parseMock).toHaveBeenCalledTimes(0);
574+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
575+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
584576
}
585577

586578
await test(
587579
'./__source__/__compiled__/inline/fb-sources-extended/ComponentWithNestedHooks',
588-
); // x_fb_sources extended inline source map
580+
); // x_facebook_sources extended inline source map
589581
await test(
590582
'./__source__/__compiled__/external/fb-sources-extended/ComponentWithNestedHooks',
591-
); // x_fb_sources extended external source map
583+
); // x_facebook_sources extended external source map
592584
await test(
593585
'./__source__/__compiled__/inline/react-sources-extended/ComponentWithNestedHooks',
594586
); // x_react_sources extended inline source map
@@ -606,18 +598,19 @@ describe('parseHookNames', () => {
606598
'theme', // useTheme()
607599
'theme', // useContext()
608600
]);
609-
expect(parseMock).toHaveBeenCalledTimes(0);
601+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
602+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
610603
}
611604

612605
// We can't test the uncompiled source here, because it either needs to get transformed,
613606
// which would break the source mapping, or the import statements will fail.
614607

615608
await test(
616609
'./__source__/__compiled__/inline/fb-sources-extended/ComponentWithExternalCustomHooks',
617-
); // x_fb_sources extended inline source map
610+
); // x_facebook_sources extended inline source map
618611
await test(
619612
'./__source__/__compiled__/external/fb-sources-extended/ComponentWithExternalCustomHooks',
620-
); // x_fb_sources extended external source map
613+
); // x_facebook_sources extended external source map
621614
await test(
622615
'./__source__/__compiled__/inline/react-sources-extended/ComponentWithExternalCustomHooks',
623616
); // x_react_sources extended inline source map
@@ -637,15 +630,16 @@ describe('parseHookNames', () => {
637630
'c', // useContext()
638631
'd', // useContext()
639632
]);
640-
expect(parseMock).toHaveBeenCalledTimes(0);
633+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
634+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
641635
}
642636

643637
await test(
644638
'./__source__/__compiled__/inline/fb-sources-extended/ComponentWithMultipleHooksPerLine',
645-
); // x_fb_sources extended inline source map
639+
); // x_facebook_sources extended inline source map
646640
await test(
647641
'./__source__/__compiled__/external/fb-sources-extended/ComponentWithMultipleHooksPerLine',
648-
); // x_fb_sources extended external source map
642+
); // x_facebook_sources extended external source map
649643
await test(
650644
'./__source__/__compiled__/inline/react-sources-extended/ComponentWithMultipleHooksPerLine',
651645
); // x_react_sources extended inline source map
@@ -665,16 +659,16 @@ describe('parseHookNames', () => {
665659
expectHookNamesToEqual(hookNames, [
666660
'count', // useState()
667661
]);
668-
expect(parseMock).toHaveBeenCalledTimes(0);
662+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
663+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
669664
}
670665

671-
await test('./__source__/InlineRequire'); // original source (uncompiled)
672666
await test(
673667
'./__source__/__compiled__/inline/fb-sources-extended/InlineRequire',
674-
); // x_fb_sources extended inline source map
668+
); // x_facebook_sources extended inline source map
675669
await test(
676670
'./__source__/__compiled__/external/fb-sources-extended/InlineRequire',
677-
); // x_fb_sources extended external source map
671+
); // x_facebook_sources extended external source map
678672
await test(
679673
'./__source__/__compiled__/inline/react-sources-extended/InlineRequire',
680674
); // x_react_sources extended inline source map
@@ -691,19 +685,19 @@ describe('parseHookNames', () => {
691685
expectHookNamesToEqual(hookNames, [
692686
'count', // useState()
693687
]);
694-
expect(parseMock).toHaveBeenCalledTimes(0);
688+
expect(require('@babel/parser').parse).toHaveBeenCalledTimes(0);
689+
expect(require('../generateHookMap').decodeHookMap).toHaveBeenCalled();
695690
}
696691

697692
// We expect the inline sourceMappingURL to be invalid in this case; mute the warning.
698693
console.warn = () => {};
699694

700-
await test('./__source__/ContainingStringSourceMappingURL'); // original source (uncompiled)
701695
await test(
702696
'./__source__/__compiled__/inline/fb-sources-extended/ContainingStringSourceMappingURL',
703-
); // x_fb_sources extended inline source map
697+
); // x_facebook_sources extended inline source map
704698
await test(
705699
'./__source__/__compiled__/external/fb-sources-extended/ContainingStringSourceMappingURL',
706-
); // x_fb_sources extended external source map
700+
); // x_facebook_sources extended external source map
707701
await test(
708702
'./__source__/__compiled__/inline/react-sources-extended/ContainingStringSourceMappingURL',
709703
); // x_react_sources extended inline source map

0 commit comments

Comments
 (0)