From 7c73be690a3621bacb1545eda12c203793f4c748 Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 12:21:43 -0400 Subject: [PATCH 1/6] Add type-only import test case for dependencyExtractor --- .../src/lib/__tests__/dependencyExtractor.test.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index c1e4c574ddc4..e7c64865c210 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -92,8 +92,12 @@ describe('dependencyExtractor', () => { // Bad import typeof {foo} from 'inv1'; import type {foo} from 'inv2'; + import {type foo, typeof bar} from 'inv3'; + // Good + import {foo, typeof bar} from 'inv4'; + import {type foo, bar} from 'inv5'; `; - expect(extractor.extract(code)).toEqual(new Set([])); + expect(extractor.extract(code)).toEqual(new Set(['inv4', 'inv5'])); }); it('should extract dependencies from `export` statements', () => { From 6f14598361e4c35a5247d5b4a207b4756134536e Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 12:27:31 -0400 Subject: [PATCH 2/6] Add more test cases, with newlines --- .../lib/__tests__/dependencyExtractor.test.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index e7c64865c210..95ca543611d6 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -93,9 +93,21 @@ describe('dependencyExtractor', () => { import typeof {foo} from 'inv1'; import type {foo} from 'inv2'; import {type foo, typeof bar} from 'inv3'; + import { + type foo, + typeof bar, + } from 'inv4' // Good - import {foo, typeof bar} from 'inv4'; - import {type foo, bar} from 'inv5'; + import {foo, typeof bar} from 'inv5'; + import {type foo, bar} from 'inv6'; + import { + foo, + typeof bar + } from 'inv7'; + import { + type foo, + bar + } from 'inv8'; `; expect(extractor.extract(code)).toEqual(new Set(['inv4', 'inv5'])); }); From 705474fd17956af290df8508801d434214e4c056 Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 12:32:28 -0400 Subject: [PATCH 3/6] Include all good invX in set --- .../src/lib/__tests__/dependencyExtractor.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index 95ca543611d6..fe99d701ba80 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -109,7 +109,7 @@ describe('dependencyExtractor', () => { bar } from 'inv8'; `; - expect(extractor.extract(code)).toEqual(new Set(['inv4', 'inv5'])); + expect(extractor.extract(code)).toEqual(new Set(['inv5', 'inv6', 'inv7', 'inv8'])); }); it('should extract dependencies from `export` statements', () => { From d43a33731882ea28d97d5ff8bf4d521dbcc86477 Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 12:36:32 -0400 Subject: [PATCH 4/6] Add default import case --- .../src/lib/__tests__/dependencyExtractor.test.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index fe99d701ba80..26dbe9e08b28 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -87,7 +87,7 @@ describe('dependencyExtractor', () => { ); }); - it('should not extract dependencies from `import type/typeof` statements', () => { + it('should not extract dependencies from `import type/typeof` statements, or type-only imports', () => { const code = ` // Bad import typeof {foo} from 'inv1'; @@ -108,8 +108,9 @@ describe('dependencyExtractor', () => { type foo, bar } from 'inv8'; + import TheDefaultExport, {type foo, type bar} from 'inv9'; `; - expect(extractor.extract(code)).toEqual(new Set(['inv5', 'inv6', 'inv7', 'inv8'])); + expect(extractor.extract(code)).toEqual(new Set(['inv5', 'inv6', 'inv7', 'inv8', 'inv9'])); }); it('should extract dependencies from `export` statements', () => { From 57932a15db0ff69d45e5476262cf21cf3c395aab Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 12:55:21 -0400 Subject: [PATCH 5/6] prettier fix --- .../src/lib/__tests__/dependencyExtractor.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index 26dbe9e08b28..2fb15a917c5b 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -110,7 +110,9 @@ describe('dependencyExtractor', () => { } from 'inv8'; import TheDefaultExport, {type foo, type bar} from 'inv9'; `; - expect(extractor.extract(code)).toEqual(new Set(['inv5', 'inv6', 'inv7', 'inv8', 'inv9'])); + expect(extractor.extract(code)).toEqual( + new Set(['inv5', 'inv6', 'inv7', 'inv8', 'inv9']) + ); }); it('should extract dependencies from `export` statements', () => { From 2d2e5e9e6a53a191f820b4ffd5e282e23e40441c Mon Sep 17 00:00:00 2001 From: Cory Danielson Date: Mon, 16 Sep 2024 14:59:59 -0400 Subject: [PATCH 6/6] comma for prettier --- .../src/lib/__tests__/dependencyExtractor.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js index 2fb15a917c5b..625378f59377 100644 --- a/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js +++ b/packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js @@ -111,7 +111,7 @@ describe('dependencyExtractor', () => { import TheDefaultExport, {type foo, type bar} from 'inv9'; `; expect(extractor.extract(code)).toEqual( - new Set(['inv5', 'inv6', 'inv7', 'inv8', 'inv9']) + new Set(['inv5', 'inv6', 'inv7', 'inv8', 'inv9']), ); });