UNPKG

11.9 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/index.test.js"],"names":["sander","id","actual","t","deepEqual","expected","foo","serial","prev","process","env","PREFIX","bootstrap","cwd","prefix","npm","args","mkdir","extends","notThrows","input","throws","resolve","require","is","propagated","push","baz","zero","one","two","three","Error","rules","fallback"],"mappings":"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","file":"index.test.js","sourcesContent":["import test from 'ava';\nimport execa from 'execa';\nimport {fix} from '@commitlint/test';\nimport * as sander from '@marionebl/sander';\nimport resolveExtends from '.';\n\nconst id = id => id;\n\ntest('returns empty object when called without params', t => {\n\tconst actual = resolveExtends();\n\tt.deepEqual(actual, {});\n});\n\ntest('returns an equivalent object as passed in', t => {\n\tconst expected = {foo: 'bar'};\n\tconst actual = resolveExtends(expected);\n\tt.deepEqual(actual, expected);\n});\n\ntest.serial('falls back to global install', async t => {\n\tconst prev = process.env.PREFIX;\n\n\tconst cwd = await fix.bootstrap('fixtures/global-install');\n\tconst prefix = `${cwd}/commitlint-npm-packages`;\n\n\tconst npm = args => execa('npm', args, {cwd});\n\n\tawait sander.mkdir(cwd, 'commitlint-npm-packages');\n\n\tprocess.env.PREFIX = prefix;\n\n\tawait npm([\n\t\t'install',\n\t\t'--global',\n\t\t'@commitlint/config-angular',\n\t\t'--prefix',\n\t\tprefix\n\t]);\n\n\tconst expected = {extends: ['@commitlint/config-angular']};\n\tt.notThrows(() => resolveExtends(expected));\n\n\tprocess.env.PREFIX = prev;\n});\n\ntest.serial('fails for missing extends', async t => {\n\tconst prev = process.env.PREFIX;\n\n\tconst cwd = await fix.bootstrap('fixtures/missing-install');\n\tconst prefix = `${cwd}/commitlint-npm-packages`;\n\n\tprocess.env.PREFIX = prefix;\n\n\tconst input = {extends: ['@commitlint/foo-bar']};\n\n\tt.throws(\n\t\t() => resolveExtends(input, {cwd}),\n\t\t/Cannot find module \"@commitlint\\/foo-bar\" from/\n\t);\n\n\tprocess.env.PREFIX = prev;\n});\n\ntest('uses empty prefix by default', t => {\n\tconst input = {extends: ['extender-name']};\n\n\tresolveExtends(input, {\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tt.is(id, 'extender-name');\n\t\t}\n\t});\n});\n\ntest('uses prefix as configured', t => {\n\tconst input = {extends: ['extender-name']};\n\n\tresolveExtends(input, {\n\t\tprefix: 'prefix',\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tt.is(id, 'prefix-extender-name');\n\t\t}\n\t});\n});\n\ntest('ignores prefix for scoped extends', t => {\n\tconst input = {extends: ['@scope/extender-name']};\n\n\tresolveExtends(input, {\n\t\tprefix: 'prefix',\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tt.is(id, '@scope/extender-name');\n\t\t}\n\t});\n});\n\ntest('ignores prefix for relative extends', t => {\n\tconst input = {extends: ['./extender']};\n\n\tresolveExtends(input, {\n\t\tprefix: 'prefix',\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tt.is(id, './extender');\n\t\t}\n\t});\n});\n\ntest('propagates return value of require function', t => {\n\tconst input = {extends: ['extender-name']};\n\tconst propagated = {foo: 'bar'};\n\n\tconst actual = resolveExtends(input, {\n\t\tresolve: id,\n\t\trequire() {\n\t\t\treturn propagated;\n\t\t}\n\t});\n\n\tt.is(actual.foo, 'bar');\n});\n\ntest('resolves extends recursively', t => {\n\tconst input = {extends: ['extender-name']};\n\tconst actual = [];\n\n\tresolveExtends(input, {\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tactual.push(id);\n\t\t\tif (id === 'extender-name') {\n\t\t\t\treturn {extends: ['recursive-extender-name']};\n\t\t\t}\n\t\t\tif (id === 'recursive-extender-name') {\n\t\t\t\treturn {foo: 'bar'};\n\t\t\t}\n\t\t}\n\t});\n\n\tt.deepEqual(actual, ['extender-name', 'recursive-extender-name']);\n});\n\ntest('uses prefix key recursively', t => {\n\tconst input = {extends: ['extender-name']};\n\tconst actual = [];\n\n\tresolveExtends(input, {\n\t\tprefix: 'prefix',\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tactual.push(id);\n\t\t\tif (id === 'prefix-extender-name') {\n\t\t\t\treturn {extends: ['recursive-extender-name']};\n\t\t\t}\n\t\t\tif (id === 'prefix-recursive-extender-name') {\n\t\t\t\treturn {foo: 'bar'};\n\t\t\t}\n\t\t}\n\t});\n\n\tt.deepEqual(actual, [\n\t\t'prefix-extender-name',\n\t\t'prefix-recursive-extender-name'\n\t]);\n});\n\ntest('propagates contents recursively', t => {\n\tconst input = {extends: ['extender-name']};\n\n\tconst actual = resolveExtends(input, {\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tif (id === 'extender-name') {\n\t\t\t\treturn {extends: ['recursive-extender-name'], foo: 'bar'};\n\t\t\t}\n\t\t\tif (id === 'recursive-extender-name') {\n\t\t\t\treturn {baz: 'bar'};\n\t\t\t}\n\t\t}\n\t});\n\n\tconst expected = {\n\t\textends: ['extender-name'],\n\t\tfoo: 'bar',\n\t\tbaz: 'bar'\n\t};\n\n\tt.deepEqual(actual, expected);\n});\n\ntest('extending contents should take precedence', t => {\n\tconst input = {extends: ['extender-name'], zero: 'root'};\n\n\tconst actual = resolveExtends(input, {\n\t\tresolve: id,\n\t\trequire(id) {\n\t\t\tif (id === 'extender-name') {\n\t\t\t\treturn {extends: ['recursive-extender-name'], zero: id, one: id};\n\t\t\t}\n\t\t\tif (id === 'recursive-extender-name') {\n\t\t\t\treturn {\n\t\t\t\t\textends: ['second-recursive-extender-name'],\n\t\t\t\t\tzero: id,\n\t\t\t\t\tone: id,\n\t\t\t\t\ttwo: id\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (id === 'second-recursive-extender-name') {\n\t\t\t\treturn {zero: id, one: id, two: id, three: id};\n\t\t\t}\n\t\t}\n\t});\n\n\tconst expected = {\n\t\textends: ['extender-name'],\n\t\tzero: 'root',\n\t\tone: 'extender-name',\n\t\ttwo: 'recursive-extender-name',\n\t\tthree: 'second-recursive-extender-name'\n\t};\n\n\tt.deepEqual(actual, expected);\n});\n\ntest('should fall back to conventional-changelog-lint-config prefix', t => {\n\tconst input = {extends: ['extender-name']};\n\n\tconst actual = resolveExtends(input, {\n\t\tprefix: 'prefix',\n\t\tresolve(id) {\n\t\t\tif (id === 'conventional-changelog-lint-config-extender-name') {\n\t\t\t\treturn 'conventional-changelog-lint-config-extender-name';\n\t\t\t}\n\t\t\tthrow new Error(`Could not find module \"*${id}\"`);\n\t\t},\n\t\trequire(id) {\n\t\t\tif (id === 'conventional-changelog-lint-config-extender-name') {\n\t\t\t\treturn {\n\t\t\t\t\trules: {\n\t\t\t\t\t\tfallback: true\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\n\n\tt.deepEqual(actual, {\n\t\textends: ['extender-name'],\n\t\trules: {\n\t\t\tfallback: true\n\t\t}\n\t});\n});\n"]}
\No newline at end of file