Skip to content

Commit

Permalink
fix(pluginutils): add current working dirctory when pattern starts wi…
Browse files Browse the repository at this point in the history
…th one * (#1547)
  • Loading branch information
TrickyPi committed Aug 13, 2023
1 parent a01a075 commit 89ceb2a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
2 changes: 1 addition & 1 deletion packages/pluginutils/src/createFilter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import ensureArray from './utils/ensureArray';
import normalizePath from './normalizePath';

function getMatcherString(id: string, resolutionBase: string | false | null | undefined) {
if (resolutionBase === false || isAbsolute(id) || id.startsWith('*')) {
if (resolutionBase === false || isAbsolute(id) || id.startsWith('**')) {
return normalizePath(id);
}

Expand Down
20 changes: 14 additions & 6 deletions packages/pluginutils/test/createFilter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,20 @@ test('does not add current working directory when pattern is an absolute path',
t.falsy(filter(resolve('..', 'c')));
});

test('does not add current working directory when pattern starts with character **', (t) => {
const filter = createFilter(['**/*']);

t.truthy(filter(resolve('a')));
t.truthy(filter(resolve('..', '..', 'a')));
});

test('add current working directory when pattern starts with one *', (t) => {
const filter = createFilter([`*`]);

t.truthy(filter(resolve('a')));
t.falsy(filter(resolve('..', '..', 'a')));
});

test('normalizes path when pattern is an absolute path', (t) => {
const filterPosix = createFilter([`${resolve('.')}/*`]);
const filterWin = createFilter([`${resolve('.')}\\*`]);
Expand Down Expand Up @@ -161,9 +175,3 @@ test('normalizes path when pattern has resolution base', (t) => {
t.truthy(filterPosix(resolve('test/a')));
t.truthy(filterWin(resolve('test/a')));
});

test('does not add current working directory when pattern starts with a glob', (t) => {
const filter = createFilter(['**/*']);
t.truthy(filter(resolve('a')));
t.truthy(filter(resolve('..', '..', 'a')));
});

0 comments on commit 89ceb2a

Please sign in to comment.