From 2e08e4ac91af7146d4bf679f4235922debd6274b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=A7=80=ED=9B=88?= Date: Wed, 20 Apr 2022 21:14:20 +0900 Subject: [PATCH] fix(filter-workspace-packages): filter not working if the path contains Korean characters --- .../src/getChangedPackages.ts | 2 ++ .../filter-workspace-packages/test/index.ts | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/filter-workspace-packages/src/getChangedPackages.ts b/packages/filter-workspace-packages/src/getChangedPackages.ts index a401d4ed335..ac487fb7cee 100644 --- a/packages/filter-workspace-packages/src/getChangedPackages.ts +++ b/packages/filter-workspace-packages/src/getChangedPackages.ts @@ -64,6 +64,8 @@ async function getChangedDirsSinceCommit (commit: string, workingDir: string, te } const allChangedFiles = diff.split('\n') + // The prefix and suffix '"' are appended to the Korean path + .map(line => line.replace(/^"/, '').replace(/"$/, '')) const patterns = changedFilesIgnorePattern.filter( (pattern) => pattern.length ) diff --git a/packages/filter-workspace-packages/test/index.ts b/packages/filter-workspace-packages/test/index.ts index 176d31cd1ea..799d5d1431d 100644 --- a/packages/filter-workspace-packages/test/index.ts +++ b/packages/filter-workspace-packages/test/index.ts @@ -366,6 +366,11 @@ test('select changed packages', async () => { await mkdir(pkg3Dir) + const pkgKorDir = path.join(workspaceDir, 'package-kor') + + await mkdir(pkgKorDir) + await touch(path.join(pkgKorDir, 'fileKor한글.js')) + await execa('git', ['add', '.'], { cwd: workspaceDir }) await execa('git', ['commit', '--allow-empty-message', '-m', '', '--no-gpg-sign'], { cwd: workspaceDir }) @@ -412,6 +417,16 @@ test('select changed packages', async () => { }, }, }, + [pkgKorDir]: { + dependencies: [], + package: { + dir: pkgKorDir, + manifest: { + name: 'package-kor', + version: '0.0.0', + }, + }, + }, [pkg20Dir]: { dependencies: [], package: { @@ -429,7 +444,7 @@ test('select changed packages', async () => { diff: 'HEAD~1', }], { workspaceDir }) - expect(Object.keys(selectedProjectsGraph)).toStrictEqual([pkg1Dir, pkg2Dir]) + expect(Object.keys(selectedProjectsGraph)).toStrictEqual([pkg1Dir, pkg2Dir, pkgKorDir]) } { const { selectedProjectsGraph } = await filterWorkspacePackages(pkgsGraph, [{ @@ -453,7 +468,7 @@ test('select changed packages', async () => { includeDependents: true, }], { workspaceDir, testPattern: ['*/file2.js'] }) - expect(Object.keys(selectedProjectsGraph)).toStrictEqual([pkg1Dir, pkg2Dir]) + expect(Object.keys(selectedProjectsGraph)).toStrictEqual([pkg1Dir, pkgKorDir, pkg2Dir]) } })