Skip to content

Commit 2441177

Browse files
committed
fix: add additional unit tests
1 parent 207e756 commit 2441177

File tree

2 files changed

+71
-2
lines changed

2 files changed

+71
-2
lines changed

@commitlint/resolve-extends/src/index.test.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,75 @@ test('should fall back to conventional-changelog-lint-config prefix', () => {
349349
});
350350
});
351351

352+
test('plugins should be merged correctly', () => {
353+
const input = {extends: ['extender-name'], zero: 'root'};
354+
355+
const require = (id: string) => {
356+
switch (id) {
357+
case 'extender-name':
358+
return {extends: ['recursive-extender-name'], plugins: ['test']};
359+
case 'recursive-extender-name':
360+
return {
361+
extends: ['second-recursive-extender-name'],
362+
plugins: ['test2'],
363+
};
364+
case 'second-recursive-extender-name':
365+
return {plugins: ['test3']};
366+
default:
367+
return {};
368+
}
369+
};
370+
371+
const ctx = {resolve: id, require: jest.fn(require)} as ResolveExtendsContext;
372+
373+
const actual = resolveExtends(input, ctx);
374+
375+
const expected = {
376+
extends: ['extender-name'],
377+
plugins: ['test', 'test2', 'test3'],
378+
zero: 'root',
379+
};
380+
381+
expect(actual).toEqual(expected);
382+
});
383+
384+
test('rules should be merged correctly', () => {
385+
const input = {extends: ['extender-name'], rules: {test1: ['base', '1']}};
386+
387+
const require = (id: string) => {
388+
switch (id) {
389+
case 'extender-name':
390+
return {
391+
extends: ['recursive-extender-name'],
392+
rules: {test2: [id, '2']},
393+
};
394+
case 'recursive-extender-name':
395+
return {
396+
extends: ['second-recursive-extender-name'],
397+
rules: {test1: [id, '3']},
398+
};
399+
case 'second-recursive-extender-name':
400+
return {rules: {test2: [id, '4']}};
401+
default:
402+
return {};
403+
}
404+
};
405+
406+
const ctx = {resolve: id, require: jest.fn(require)} as ResolveExtendsContext;
407+
408+
const actual = resolveExtends(input, ctx);
409+
410+
const expected = {
411+
extends: ['extender-name'],
412+
rules: {
413+
test1: ['base', '1'],
414+
test2: ['extender-name', '2'],
415+
},
416+
};
417+
418+
expect(actual).toEqual(expected);
419+
});
420+
352421
// https://github.com/conventional-changelog/commitlint/issues/327
353422
test('parserPreset should resolve correctly in extended configuration', () => {
354423
const input = {extends: ['extender-name'], zero: 'root'};

@commitlint/resolve-extends/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ export default function resolveExtends(
4545
return srcValue;
4646
}
4747
} else if (key === 'plugins') {
48-
if (!Array.isArray(objValue)) {
49-
return srcValue;
48+
if (Array.isArray(objValue)) {
49+
return srcValue.concat(objValue);
5050
}
5151
} else if (Array.isArray(objValue)) {
5252
return srcValue;

0 commit comments

Comments
 (0)