From 30acfd418a73c9e2ac5b7b20eb2569b84cdc5e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20=F0=9F=91=A8=F0=9F=8F=BD=E2=80=8D=F0=9F=92=BB=20Copl?= =?UTF-8?q?an?= Date: Wed, 21 Dec 2022 12:28:55 -0800 Subject: [PATCH] [haste-map]: Ignore Sapling vcs directories Summary: Ignore `.sl` directories in HasteMap. This will allow Sapling to be used with jest projects Test Plan: `packages/jest-haste-map/src/__tests__/index.test.js` similar testing plan to what's in #13673 Closes #13673 --- CHANGELOG.md | 2 ++ docs/Configuration.md | 2 +- packages/jest-haste-map/src/__tests__/index.test.js | 8 ++++++++ packages/jest-haste-map/src/index.ts | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07f7984aa970..ee06d0c2eef2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Features +- `[jest-haste-map]` ignore Sapling vcs directories (`.sl/`) ([#13674](https://github.com/facebook/jest/pull/13674)) + ### Fixes - `[jest-resolve]` add global paths to `require.resolve.paths` ([#13633](https://github.com/facebook/jest/pull/13633)) diff --git a/docs/Configuration.md b/docs/Configuration.md index 83140deacf05..daa95eebb23c 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -2256,7 +2256,7 @@ An array of RegExp patterns that are matched against all source file paths befor These patterns match against the full path. Use the `` string token to include the path to your project's root directory to prevent it from accidentally ignoring all of your files in different environments that may have different root directories. Example: `["/node_modules/"]`. -Even if nothing is specified here, the watcher will ignore changes to the version control folders (.git, .hg). Other hidden files and directories, i.e. those that begin with a dot (`.`), are watched by default. Remember to escape the dot when you add them to `watchPathIgnorePatterns` as it is a special RegExp character. +Even if nothing is specified here, the watcher will ignore changes to the version control folders (.git, .hg, .sl). Other hidden files and directories, i.e. those that begin with a dot (`.`), are watched by default. Remember to escape the dot when you add them to `watchPathIgnorePatterns` as it is a special RegExp character. ```js tab /** @type {import('jest').Config} */ diff --git a/packages/jest-haste-map/src/__tests__/index.test.js b/packages/jest-haste-map/src/__tests__/index.test.js index b93a752a096d..013de8971133 100644 --- a/packages/jest-haste-map/src/__tests__/index.test.js +++ b/packages/jest-haste-map/src/__tests__/index.test.js @@ -346,6 +346,14 @@ describe('HasteMap', () => { expect(hasteFS.matchFiles('.git')).toEqual([]); }); + it('ignores sapling vcs directories without ignore pattern', async () => { + mockFs[path.join('/', 'project', 'fruits', '.sl', 'package.json')] = ` + invalid}{ + `; + const {hasteFS} = await (await HasteMap.create(defaultConfig)).build(); + expect(hasteFS.matchFiles('.sl')).toEqual([]); + }); + it('ignores vcs directories with ignore pattern regex', async () => { const config = {...defaultConfig, ignorePattern: /Kiwi/}; mockFs[path.join('/', 'project', 'fruits', 'Kiwi.js')] = ` diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index 5c3458c96686..e4ddf1e1f856 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -125,7 +125,7 @@ const CHANGE_INTERVAL = 30; const MAX_WAIT_TIME = 240000; const NODE_MODULES = `${path.sep}node_modules${path.sep}`; const PACKAGE_JSON = `${path.sep}package.json`; -const VCS_DIRECTORIES = ['.git', '.hg'] +const VCS_DIRECTORIES = ['.git', '.hg', '.sl'] .map(vcs => escapePathForRegex(path.sep + vcs + path.sep)) .join('|');