Skip to content

Commit 1a0e062

Browse files
committed
fix: allow onlyPlugins to include plugins not referenced by categories
1 parent 562c83b commit 1a0e062

2 files changed

Lines changed: 45 additions & 4 deletions

File tree

packages/cli/src/lib/implementation/filter.middleware.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,13 @@ function applyPluginFilters(
116116
options: Pick<FilterOptions, 'skipPlugins' | 'onlyPlugins'>,
117117
): CoreConfig['plugins'] {
118118
const { skipPlugins = [], onlyPlugins = [] } = options;
119-
const filteredPlugins = filterPluginsFromCategories({
120-
categories,
121-
plugins,
122-
});
119+
const filteredPlugins =
120+
onlyPlugins.length === 0
121+
? filterPluginsFromCategories({
122+
categories,
123+
plugins,
124+
})
125+
: plugins;
123126
if (skipPlugins.length === 0 && onlyPlugins.length === 0) {
124127
return filteredPlugins;
125128
}

packages/cli/src/lib/implementation/filter.middleware.unit.test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,44 @@ describe('filterMiddleware', () => {
414414
),
415415
);
416416
});
417+
418+
it('should allow onlyPlugins to include plugins not referenced by categories', () => {
419+
const { plugins } = filterMiddleware({
420+
plugins: [
421+
{
422+
slug: 'p1',
423+
audits: [{ slug: 'a1-p1', isSkipped: false }],
424+
groups: [
425+
{
426+
slug: 'g1-p1',
427+
refs: [{ slug: 'a1-p1', weight: 1 }],
428+
isSkipped: false,
429+
},
430+
],
431+
},
432+
{
433+
slug: 'p2',
434+
audits: [{ slug: 'a1-p2', isSkipped: false }],
435+
groups: [
436+
{
437+
slug: 'g1-p2',
438+
refs: [{ slug: 'a1-p2', weight: 1 }],
439+
isSkipped: false,
440+
},
441+
],
442+
},
443+
] as PluginConfig[],
444+
categories: [
445+
{
446+
slug: 'c1',
447+
refs: [{ type: 'group', plugin: 'p1', slug: 'g1-p1', weight: 1 }],
448+
},
449+
] as CategoryConfig[],
450+
onlyPlugins: ['p2'],
451+
});
452+
453+
expect(plugins.map(plugin => plugin.slug)).toStrictEqual(['p2']);
454+
});
417455
});
418456

419457
describe('filterSkippedInPlugins', () => {

0 commit comments

Comments
 (0)