From 885bd8aa642261f1feb4c67c4b75ff89458fdda0 Mon Sep 17 00:00:00 2001 From: songhn233 Date: Fri, 6 Aug 2021 03:20:36 +0800 Subject: [PATCH] test(load): recursive extends with ts file --- .../recursive-extends-ts/commitlint.config.ts | 9 +++++++++ .../recursive-extends-ts/first-extended/index.ts | 7 +++++++ .../first-extended/second-extended/index.ts | 6 ++++++ .../load/fixtures/recursive-extends-ts/types.ts | 11 +++++++++++ @commitlint/load/src/load.test.ts | 16 ++++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 @commitlint/load/fixtures/recursive-extends-ts/commitlint.config.ts create mode 100644 @commitlint/load/fixtures/recursive-extends-ts/first-extended/index.ts create mode 100644 @commitlint/load/fixtures/recursive-extends-ts/first-extended/second-extended/index.ts create mode 100644 @commitlint/load/fixtures/recursive-extends-ts/types.ts diff --git a/@commitlint/load/fixtures/recursive-extends-ts/commitlint.config.ts b/@commitlint/load/fixtures/recursive-extends-ts/commitlint.config.ts new file mode 100644 index 0000000000..396cef436b --- /dev/null +++ b/@commitlint/load/fixtures/recursive-extends-ts/commitlint.config.ts @@ -0,0 +1,9 @@ +import type {UserConfig} from './types'; + +const Configuration: UserConfig = { + extends: ['./first-extended'], + rules: { + zero: [0, 'never', 'zero'] + } +}; +module.exports = Configuration; \ No newline at end of file diff --git a/@commitlint/load/fixtures/recursive-extends-ts/first-extended/index.ts b/@commitlint/load/fixtures/recursive-extends-ts/first-extended/index.ts new file mode 100644 index 0000000000..6111626aea --- /dev/null +++ b/@commitlint/load/fixtures/recursive-extends-ts/first-extended/index.ts @@ -0,0 +1,7 @@ +import type {UserConfig} from '../types'; +module.exports = { + extends: ['./second-extended'], + rules: { + one: [1, 'never', 'one'] + } +} as UserConfig; diff --git a/@commitlint/load/fixtures/recursive-extends-ts/first-extended/second-extended/index.ts b/@commitlint/load/fixtures/recursive-extends-ts/first-extended/second-extended/index.ts new file mode 100644 index 0000000000..fb8d23b4cd --- /dev/null +++ b/@commitlint/load/fixtures/recursive-extends-ts/first-extended/second-extended/index.ts @@ -0,0 +1,6 @@ +import type {UserConfig} from '../../types'; +module.exports = { + rules: { + two: [2, 'never', 'two'] + } +} as UserConfig; diff --git a/@commitlint/load/fixtures/recursive-extends-ts/types.ts b/@commitlint/load/fixtures/recursive-extends-ts/types.ts new file mode 100644 index 0000000000..5a4f43fbee --- /dev/null +++ b/@commitlint/load/fixtures/recursive-extends-ts/types.ts @@ -0,0 +1,11 @@ +export interface UserConfig { + extends?: string[]; + formatter?: string; + rules?: any; + parserPreset?: any; + ignores?: ((commit: string) => boolean)[]; + defaultIgnores?: boolean; + plugins?: (string | Plugin)[]; + helpUrl?: string; + prompt?: any; +} \ No newline at end of file diff --git a/@commitlint/load/src/load.test.ts b/@commitlint/load/src/load.test.ts index d192ff3548..024323d468 100644 --- a/@commitlint/load/src/load.test.ts +++ b/@commitlint/load/src/load.test.ts @@ -248,6 +248,22 @@ test('recursive extends with package.json file', async () => { }); }); +test('recursive extends with ts file', async () => { + const cwd = await gitBootstrap('fixtures/recursive-extends-ts'); + const actual = await load({}, {cwd}); + + expect(actual).toMatchObject({ + formatter: '@commitlint/format', + extends: ['./first-extended'], + plugins: {}, + rules: { + zero: [0, 'never', 'zero'], + one: [1, 'never', 'one'], + two: [2, 'never', 'two'], + }, + }); +}); + test('parser preset overwrites completely instead of merging', async () => { const cwd = await gitBootstrap('fixtures/parser-preset-override'); const actual = await load({}, {cwd});