diff --git a/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/a2/package.json b/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/a2/package.json new file mode 100644 index 0000000000..caecf1e4fb --- /dev/null +++ b/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/a2/package.json @@ -0,0 +1,4 @@ +{ + "name": "a2", + "version": "1.0.0" +} diff --git a/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/b2/package.json b/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/b2/package.json new file mode 100644 index 0000000000..cb876f041e --- /dev/null +++ b/@commitlint/config-lerna-scopes/fixtures/lerna-two/packages/b2/package.json @@ -0,0 +1,4 @@ +{ + "name": "b2", + "version": "1.0.0" +} diff --git a/@commitlint/config-lerna-scopes/index.test.js b/@commitlint/config-lerna-scopes/index.test.js index 45df721bcd..c7661b833e 100644 --- a/@commitlint/config-lerna-scopes/index.test.js +++ b/@commitlint/config-lerna-scopes/index.test.js @@ -1,5 +1,6 @@ import {lerna} from '@commitlint/test'; import config from '.'; +import semver from 'semver'; test('exports rules key', () => { expect(config).toHaveProperty('rules'); @@ -70,5 +71,27 @@ test('returns expected value for scoped lerna repository', async () => { test('works with lerna version < 3', async () => { const {'scope-enum': fn} = config.rules; const cwd = await lerna.bootstrap('lerna-two', __dirname); - await expect(fn({cwd})).resolves.toBeTruthy(); + const [, , value] = await fn({cwd}); + expect(value).toEqual(['a2', 'b2']); +}); + +test('uses lerna version < 3 if installed', async () => { + const semverLt = jest.spyOn(semver, 'lt'); + const cwd = await lerna.bootstrap('lerna-two', __dirname); + const packages = await config.utils.getPackages({cwd}); + + expect(packages).toEqual(['a2', 'b2']); + expect(semverLt).toHaveBeenLastCalledWith('2.11.0', '3.0.0'); + expect(semverLt).toHaveLastReturnedWith(true); +}); + +test('uses lerna version >= 3 if installed', async () => { + const semverLt = jest.spyOn(semver, 'lt'); + const cwd = await lerna.bootstrap('basic', __dirname); + + const packages = await config.utils.getPackages({cwd}); + + expect(packages).toEqual(['a', 'b']); + expect(semverLt).toHaveBeenLastCalledWith('3.20.2', '3.0.0'); + expect(semverLt).toHaveLastReturnedWith(false); }); diff --git a/@packages/test/package.json b/@packages/test/package.json index 1dfacc6b26..0ed6f31c9c 100644 --- a/@packages/test/package.json +++ b/@packages/test/package.json @@ -35,6 +35,7 @@ "execa": "0.11.0", "fs-extra": "^8.1.0", "pkg-dir": "4.2.0", + "resolve-pkg": "2.0.0", "tmp": "0.1.0" } }