diff --git a/test/_fixtures/npm/renovate-config-group.json b/test/_fixtures/npm/renovate-config-group.json new file mode 100644 index 0000000000000000000000000000000000000000..c8e298da49ffec6db91975ba232c11d57bbc8829 --- /dev/null +++ b/test/_fixtures/npm/renovate-config-group.json @@ -0,0 +1 @@ +{"_id":"renovate-config-group","_rev":"3-0572f1e6e4825a350d9bc3f42a235d20","name":"renovate-config-group","description":"Preset group configs for Renovate","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{},"_id":"renovate-config-group@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-mhxC/NBDXdl/Aiis0kDaEShoW1/9Ht1cTNVavEz18FsyyrZVBKCvig3Tjkq30MkKLLSh9ceRxEH7Gn9s1dgxqg==","shasum":"3468c6fc700dc11183dedaed7151adfd197d9aac","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.1.tgz_1503044468166_0.225491588935256"},"directories":{}},"0.0.2":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"linters":{"extends":"packages:linters","groupName":"linters"},"monorepo-angular":{"packageRules":[{"description":"Group packages from angular monorepo together","extends":"monorepo:angular","groupName":"angular monorepo"}]},"monorepo-babel":{"packageRules":[{"description":"Group packages from babel monorepo together","extends":"monorepo:babel","groupName":"babel monorepo"}]},"monorepo-jest":{"packageRules":[{"description":"Group packages from jest monorepo together","extends":"monorepo:jest","groupName":"jest monorepo"}]},"monorepo-lodash":{"packageRules":[{"description":"Group packages from lodash monorepo together","extends":"monorepo:lodash","groupName":"lodash monorepo"}]},"monorepo-pouchdb":{"packageRules":[{"description":"Group packages from pouchdb monorepo together","extends":"monorepo:pouchdb","groupName":"pouchdb monorepo"}]},"monorepo-react":{"packageRules":[{"description":"Group packages from react monorepo together","extends":"monorepo:react","groupName":"react monorepo"}]},"monorepo-storybook":{"packageRules":[{"description":"Group packages from storybook monorepo together","extends":"monorepo:storybook","groupName":"storybook monorepo"}]},"monorepos":{"description":"Group monorepo packages together","extends":["group:monorepo-angular","group:monorepo-babel","group:monorepo-jest","group:monorepo-lodash","group:monorepo-pouchdb","group:monorepo-react","group:monorepo-storybook"]}},"_id":"renovate-config-group@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-FM04VWwwP4aK5PJGbmzM7XUmM1xutH+E2P3dad/gfLIzX25recwHWO+0eGZ2hUrqD1g87YzeC4sAt2Pd97fmfw==","shasum":"4154e8a5530f5cd29f0171c9907a60622c7974c2","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.2.tgz_1503052449733_0.3961799945682287"},"directories":{}},"0.0.3":{"name":"renovate-config-group","description":"Preset group configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.3","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"angularMonorepo":{"packageRules":[{"description":"Group packages from angular monorepo together","extends":"monorepo:angular","groupName":"angular monorepo"}]},"babelMonorepo":{"packageRules":[{"description":"Group packages from babel monorepo together","extends":"monorepo:babel","groupName":"babel monorepo"}]},"jestMonorepo":{"packageRules":[{"description":"Group packages from jest monorepo together","extends":"monorepo:jest","groupName":"jest monorepo"}]},"linters":{"extends":"packages:linters","groupName":"linters"},"lodashMonorepo":{"packageRules":[{"description":"Group packages from lodash monorepo together","extends":"monorepo:lodash","groupName":"lodash monorepo"}]},"monorepos":{"description":"Group monorepo packages together","extends":["group:angularMonorepo","group:babelMonorepo","group:jestMonorepo","group:lodashMonorepo","group:pouchdbMonorepo","group:reactMonorepo","group:storybookMonorepo"]},"pouchdbMonorepo":{"packageRules":[{"description":"Group packages from pouchdb monorepo together","extends":"monorepo:pouchdb","groupName":"pouchdb monorepo"}]},"reactMonorepo":{"packageRules":[{"description":"Group packages from react monorepo together","extends":"monorepo:react","groupName":"react monorepo"}]},"storybookMonorepo":{"packageRules":[{"description":"Group packages from storybook monorepo together","extends":"monorepo:storybook","groupName":"storybook monorepo"}]}},"_id":"renovate-config-group@0.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-TKX8fR6wXWg5bv40kUZx7Bgz/YKC7zKswYnFs9Z6HWRFp5Hb6LJc2Rl1yGUCpR09h+ac0W7m7q1j0jwpR0N+eg==","shasum":"206e7a07e7a986ee1b389c0b780168bee47a9761","tarball":"https://registry.npmjs.org/renovate-config-group/-/renovate-config-group-0.0.3.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-group-0.0.3.tgz_1503056947877_0.16184096015058458"},"directories":{}}},"readme":"# group presets\n\nThis directory contains preset group rules.\n\nThey can be referenced using the `group:` prefix, e.g. `group:babel`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-18T11:49:08.757Z","created":"2017-08-18T08:21:09.099Z","0.0.1":"2017-08-18T08:21:09.099Z","0.0.2":"2017-08-18T10:34:10.788Z","0.0.3":"2017-08-18T11:49:08.757Z"},"homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"readme.md","_attachments":{}} \ No newline at end of file diff --git a/test/_fixtures/npm/renovate-config-monorepo.json b/test/_fixtures/npm/renovate-config-monorepo.json new file mode 100644 index 0000000000000000000000000000000000000000..52276cc70dc6d7ecf1f653034f27fc1064e74479 --- /dev/null +++ b/test/_fixtures/npm/renovate-config-monorepo.json @@ -0,0 +1 @@ +{"_id":"renovate-config-monorepo","_rev":"2-f75323997dde9e55d8a968c6faf85123","name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.1","scripts":{"pretty":"prettier-package-json --write ./package.json"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{},"_id":"renovate-config-monorepo@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.11.1","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-tNTKXltWDrtJEzsR0lv/ZcHvYWEmFuB/EvlI/50fj+mU6iryfQwFOyuVO+Ffx8L1xr8/4Ppf1PotJaY/PT07Ww==","shasum":"0412280049ed3fafad057b66238d21a685398495","tarball":"https://registry.npmjs.org/renovate-config-monorepo/-/renovate-config-monorepo-0.0.1.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-monorepo-0.0.1.tgz_1503044329535_0.45821570651605725"},"directories":{}},"0.0.2":{"name":"renovate-config-monorepo","description":"Preset monorepo configs for Renovate","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"license":"MIT","homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"version":"0.0.2","scripts":{"pretty":"prettier-package-json --write ./package.json"},"dependencies":{"gh-got":"^6.0.0"},"devDependencies":{"prettier-package-json":"1.4.0"},"renovate-config":{"angular":{"description":"angular monorepo","packagePatterns":["^@angular/"]},"babel":{"description":"babel monorepo","packageNames":["babel-cli","babel-code-frame","babel-core","babel-generator","babel-helper-bindify-decorators","babel-helper-builder-binary-assignment-operator-visitor","babel-helper-builder-react-jsx","babel-helper-call-delegate","babel-helper-define-map","babel-helper-explode-assignable-expression","babel-helper-explode-class","babel-helper-fixtures","babel-helper-function-name","babel-helper-get-function-arity","babel-helper-hoist-variables","babel-helper-optimise-call-expression","babel-helper-plugin-test-runner","babel-helper-regex","babel-helper-remap-async-to-generator","babel-helper-replace-supers","babel-helper-transform-fixture-test-runner","babel-helper-wrap-function","babel-helpers","babel-messages","babel-node","babel-plugin-check-es2015-constants","babel-plugin-external-helpers","babel-plugin-syntax-async-functions","babel-plugin-syntax-async-generators","babel-plugin-syntax-class-properties","babel-plugin-syntax-decorators","babel-plugin-syntax-do-expressions","babel-plugin-syntax-dynamic-import","babel-plugin-syntax-exponentiation-operator","babel-plugin-syntax-export-extensions","babel-plugin-syntax-flow","babel-plugin-syntax-function-bind","babel-plugin-syntax-function-sent","babel-plugin-syntax-jsx","babel-plugin-syntax-numeric-separator","babel-plugin-syntax-object-rest-spread","babel-plugin-syntax-optional-catch-binding","babel-plugin-syntax-optional-chaining","babel-plugin-syntax-trailing-function-commas","babel-plugin-syntax-typescript","babel-plugin-transform-async-functions","babel-plugin-transform-async-generator-functions","babel-plugin-transform-async-to-generator","babel-plugin-transform-async-to-module-method","babel-plugin-transform-class-properties","babel-plugin-transform-decorators","babel-plugin-transform-do-expressions","babel-plugin-transform-es2015-arrow-functions","babel-plugin-transform-es2015-block-scoped-functions","babel-plugin-transform-es2015-block-scoping","babel-plugin-transform-es2015-classes","babel-plugin-transform-es2015-computed-properties","babel-plugin-transform-es2015-destructuring","babel-plugin-transform-es2015-duplicate-keys","babel-plugin-transform-es2015-for-of","babel-plugin-transform-es2015-function-name","babel-plugin-transform-es2015-instanceof","babel-plugin-transform-es2015-literals","babel-plugin-transform-es2015-modules-amd","babel-plugin-transform-es2015-modules-commonjs","babel-plugin-transform-es2015-modules-systemjs","babel-plugin-transform-es2015-modules-umd","babel-plugin-transform-es2015-object-super","babel-plugin-transform-es2015-parameters","babel-plugin-transform-es2015-shorthand-properties","babel-plugin-transform-es2015-spread","babel-plugin-transform-es2015-sticky-regex","babel-plugin-transform-es2015-template-literals","babel-plugin-transform-es2015-typeof-symbol","babel-plugin-transform-es2015-unicode-regex","babel-plugin-transform-es3-member-expression-literals","babel-plugin-transform-es3-property-literals","babel-plugin-transform-es5-property-mutators","babel-plugin-transform-eval","babel-plugin-transform-exponentiation-operator","babel-plugin-transform-export-extensions","babel-plugin-transform-flow-comments","babel-plugin-transform-flow-strip-types","babel-plugin-transform-function-bind","babel-plugin-transform-function-sent","babel-plugin-transform-jscript","babel-plugin-transform-new-target","babel-plugin-transform-numeric-separator","babel-plugin-transform-object-assign","babel-plugin-transform-object-rest-spread","babel-plugin-transform-object-set-prototype-of-to-assign","babel-plugin-transform-optional-catch-binding","babel-plugin-transform-optional-chaining","babel-plugin-transform-proto-to-assign","babel-plugin-transform-react-constant-elements","babel-plugin-transform-react-display-name","babel-plugin-transform-react-inline-elements","babel-plugin-transform-react-jsx-compat","babel-plugin-transform-react-jsx-self","babel-plugin-transform-react-jsx-source","babel-plugin-transform-react-jsx","babel-plugin-transform-regenerator","babel-plugin-transform-runtime","babel-plugin-transform-strict-mode","babel-plugin-transform-typescript","babel-polyfill","babel-preset-es2015","babel-preset-es2016","babel-preset-es2017","babel-preset-flow","babel-preset-react","babel-preset-stage-0","babel-preset-stage-1","babel-preset-stage-2","babel-preset-stage-3","babel-preset-typescript","babel-register","babel-runtime","babel-standalone","babel-template","babel-traverse","babel-types"]},"jest":{"description":"jest monorepo","packageNames":["babel-jest","babel-plugin-jest-hoist","babel-preset-jest","eslint-config-fb-strict","eslint-plugin-jest","jest-changed-files","jest-circus","jest-cli","jest-config","jest-diff","jest-docblock","jest-editor-support","jest-environment-jsdom","jest-environment-node","jest-get-type","jest-haste-map","jest-jasmine2","jest-matcher-utils","jest-matchers","jest-message-util","jest-mock","jest-phabricator","jest-regex-util","jest-repl","jest-resolve-dependencies","jest-resolve","jest-runner","jest-runtime","jest-snapshot","jest-test-typescript-parser","jest-util","jest-validate","jest","pretty-format"]},"lodash":{"description":"lodash monorepo","packageNames":["babel-plugin-lodash","lodash-webpack-plugin","lodash-es"],"packagePatterns":["^lodash"]},"pouchdb":{"description":"pouchdb monorepo","packageNames":["pouchdb-abstract-mapreduce","pouchdb-adapter-fruitdown","pouchdb-adapter-http","pouchdb-adapter-idb","pouchdb-adapter-indexeddb","pouchdb-adapter-leveldb-core","pouchdb-adapter-leveldb","pouchdb-adapter-localstorage","pouchdb-adapter-memory","pouchdb-adapter-node-websql","pouchdb-adapter-utils","pouchdb-adapter-websql-core","pouchdb-adapter-websql","pouchdb-ajax","pouchdb-binary-utils","pouchdb-browser","pouchdb-changes-filter","pouchdb-checkpointer","pouchdb-collate","pouchdb-collections","pouchdb-core","pouchdb-debug","pouchdb-errors","pouchdb-find","pouchdb-for-coverage","pouchdb-generate-replication-id","pouchdb-json","pouchdb-mapreduce-utils","pouchdb-mapreduce","pouchdb-md5","pouchdb-merge","pouchdb-node","pouchdb-promise","pouchdb-replication","pouchdb-selector-core","pouchdb-utils","pouchdb","sublevel-pouchdb"]},"react":{"description":"react monorepo","packageNames":["react-art","react-dom","react-noop-renderer","react-test-renderer","react"]},"storybook":{"description":"storybook monorepo","packagePatterns":["^@storybook/"]}},"_id":"renovate-config-monorepo@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"rarkins","email":"rhys@keylocation.sg"},"dist":{"integrity":"sha512-0EsuYGyztmldG4qBAQ4Ol0niypNZGjoq8tRU2JVExjc5y7RHXmdhVN63qvovENFllJjftm7lc5i+vgjRmuPyIA==","shasum":"3e4d8cb3c2a250bfd22b48ec089bb277d41c0f1a","tarball":"https://registry.npmjs.org/renovate-config-monorepo/-/renovate-config-monorepo-0.0.2.tgz"},"maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/renovate-config-monorepo-0.0.2.tgz_1503051288742_0.3895804558414966"},"directories":{}}},"readme":"# monorepo presets\n\nThis directory contains presets for defining monorepo groups.\n\nThese can be referenced using the `monorepo:` prefix, e.g. `monorepo:babel`.\n\nIn most cases, dependencies from the same monorepo should be upgraded at the same time (in same branch/PR) and these preset configs are used to group them together.\n\nThe goal of these lists and patterns is to define packages from within the monorepo and *not* any related packages. e.g. we want all the packages from the `facebook/react` repository and not to include just anything with `react` in its name, like `react-unofficial-videos`.\n","maintainers":[{"name":"rarkins","email":"rhys@keylocation.sg"}],"time":{"modified":"2017-08-18T10:14:49.667Z","created":"2017-08-18T08:18:50.430Z","0.0.1":"2017-08-18T08:18:50.430Z","0.0.2":"2017-08-18T10:14:49.667Z"},"homepage":"https://github.com/singapore/renovate-config/packages/renovate-config-monorepo","author":{"name":"Rhys Arkins","email":"rhys@arkins.net"},"bugs":{"url":"https://github.com/singapore/renovate-config/issues"},"license":"MIT","readmeFilename":"readme.md","_attachments":{}} \ No newline at end of file diff --git a/test/config/__snapshots__/presets.spec.js.snap b/test/config/__snapshots__/presets.spec.js.snap index 5adad40d3d49f17c92591d726260c408f7e37631..4201d16fd09404eda24893bb590b611ad7b2c728 100644 --- a/test/config/__snapshots__/presets.spec.js.snap +++ b/test/config/__snapshots__/presets.spec.js.snap @@ -299,6 +299,285 @@ Object { } `; +exports[`config/presets resolvePreset resolves group monorepos 1`] = ` +Object { + "logger": Object { + "child": [Function], + "debug": [Function], + "error": [Function], + "fatal": [Function], + "info": [Function], + "trace": [Function], + "warn": [Function], + }, + "packageRules": Array [ + Object { + "description": Array [ + "Group packages from angular monorepo together", + ], + "groupName": "angular monorepo", + "packagePatterns": Array [ + "^@angular/", + ], + }, + Object { + "description": Array [ + "Group packages from babel monorepo together", + ], + "groupName": "babel monorepo", + "packageNames": Array [ + "babel-cli", + "babel-code-frame", + "babel-core", + "babel-generator", + "babel-helper-bindify-decorators", + "babel-helper-builder-binary-assignment-operator-visitor", + "babel-helper-builder-react-jsx", + "babel-helper-call-delegate", + "babel-helper-define-map", + "babel-helper-explode-assignable-expression", + "babel-helper-explode-class", + "babel-helper-fixtures", + "babel-helper-function-name", + "babel-helper-get-function-arity", + "babel-helper-hoist-variables", + "babel-helper-optimise-call-expression", + "babel-helper-plugin-test-runner", + "babel-helper-regex", + "babel-helper-remap-async-to-generator", + "babel-helper-replace-supers", + "babel-helper-transform-fixture-test-runner", + "babel-helper-wrap-function", + "babel-helpers", + "babel-messages", + "babel-node", + "babel-plugin-check-es2015-constants", + "babel-plugin-external-helpers", + "babel-plugin-syntax-async-functions", + "babel-plugin-syntax-async-generators", + "babel-plugin-syntax-class-properties", + "babel-plugin-syntax-decorators", + "babel-plugin-syntax-do-expressions", + "babel-plugin-syntax-dynamic-import", + "babel-plugin-syntax-exponentiation-operator", + "babel-plugin-syntax-export-extensions", + "babel-plugin-syntax-flow", + "babel-plugin-syntax-function-bind", + "babel-plugin-syntax-function-sent", + "babel-plugin-syntax-jsx", + "babel-plugin-syntax-numeric-separator", + "babel-plugin-syntax-object-rest-spread", + "babel-plugin-syntax-optional-catch-binding", + "babel-plugin-syntax-optional-chaining", + "babel-plugin-syntax-trailing-function-commas", + "babel-plugin-syntax-typescript", + "babel-plugin-transform-async-functions", + "babel-plugin-transform-async-generator-functions", + "babel-plugin-transform-async-to-generator", + "babel-plugin-transform-async-to-module-method", + "babel-plugin-transform-class-properties", + "babel-plugin-transform-decorators", + "babel-plugin-transform-do-expressions", + "babel-plugin-transform-es2015-arrow-functions", + "babel-plugin-transform-es2015-block-scoped-functions", + "babel-plugin-transform-es2015-block-scoping", + "babel-plugin-transform-es2015-classes", + "babel-plugin-transform-es2015-computed-properties", + "babel-plugin-transform-es2015-destructuring", + "babel-plugin-transform-es2015-duplicate-keys", + "babel-plugin-transform-es2015-for-of", + "babel-plugin-transform-es2015-function-name", + "babel-plugin-transform-es2015-instanceof", + "babel-plugin-transform-es2015-literals", + "babel-plugin-transform-es2015-modules-amd", + "babel-plugin-transform-es2015-modules-commonjs", + "babel-plugin-transform-es2015-modules-systemjs", + "babel-plugin-transform-es2015-modules-umd", + "babel-plugin-transform-es2015-object-super", + "babel-plugin-transform-es2015-parameters", + "babel-plugin-transform-es2015-shorthand-properties", + "babel-plugin-transform-es2015-spread", + "babel-plugin-transform-es2015-sticky-regex", + "babel-plugin-transform-es2015-template-literals", + "babel-plugin-transform-es2015-typeof-symbol", + "babel-plugin-transform-es2015-unicode-regex", + "babel-plugin-transform-es3-member-expression-literals", + "babel-plugin-transform-es3-property-literals", + "babel-plugin-transform-es5-property-mutators", + "babel-plugin-transform-eval", + "babel-plugin-transform-exponentiation-operator", + "babel-plugin-transform-export-extensions", + "babel-plugin-transform-flow-comments", + "babel-plugin-transform-flow-strip-types", + "babel-plugin-transform-function-bind", + "babel-plugin-transform-function-sent", + "babel-plugin-transform-jscript", + "babel-plugin-transform-new-target", + "babel-plugin-transform-numeric-separator", + "babel-plugin-transform-object-assign", + "babel-plugin-transform-object-rest-spread", + "babel-plugin-transform-object-set-prototype-of-to-assign", + "babel-plugin-transform-optional-catch-binding", + "babel-plugin-transform-optional-chaining", + "babel-plugin-transform-proto-to-assign", + "babel-plugin-transform-react-constant-elements", + "babel-plugin-transform-react-display-name", + "babel-plugin-transform-react-inline-elements", + "babel-plugin-transform-react-jsx-compat", + "babel-plugin-transform-react-jsx-self", + "babel-plugin-transform-react-jsx-source", + "babel-plugin-transform-react-jsx", + "babel-plugin-transform-regenerator", + "babel-plugin-transform-runtime", + "babel-plugin-transform-strict-mode", + "babel-plugin-transform-typescript", + "babel-polyfill", + "babel-preset-es2015", + "babel-preset-es2016", + "babel-preset-es2017", + "babel-preset-flow", + "babel-preset-react", + "babel-preset-stage-0", + "babel-preset-stage-1", + "babel-preset-stage-2", + "babel-preset-stage-3", + "babel-preset-typescript", + "babel-register", + "babel-runtime", + "babel-standalone", + "babel-template", + "babel-traverse", + "babel-types", + ], + }, + Object { + "description": Array [ + "Group packages from jest monorepo together", + ], + "groupName": "jest monorepo", + "packageNames": Array [ + "babel-jest", + "babel-plugin-jest-hoist", + "babel-preset-jest", + "eslint-config-fb-strict", + "eslint-plugin-jest", + "jest-changed-files", + "jest-circus", + "jest-cli", + "jest-config", + "jest-diff", + "jest-docblock", + "jest-editor-support", + "jest-environment-jsdom", + "jest-environment-node", + "jest-get-type", + "jest-haste-map", + "jest-jasmine2", + "jest-matcher-utils", + "jest-matchers", + "jest-message-util", + "jest-mock", + "jest-phabricator", + "jest-regex-util", + "jest-repl", + "jest-resolve-dependencies", + "jest-resolve", + "jest-runner", + "jest-runtime", + "jest-snapshot", + "jest-test-typescript-parser", + "jest-util", + "jest-validate", + "jest", + "pretty-format", + ], + }, + Object { + "description": Array [ + "Group packages from lodash monorepo together", + ], + "groupName": "lodash monorepo", + "packageNames": Array [ + "babel-plugin-lodash", + "lodash-webpack-plugin", + "lodash-es", + ], + "packagePatterns": Array [ + "^lodash", + ], + }, + Object { + "description": Array [ + "Group packages from pouchdb monorepo together", + ], + "groupName": "pouchdb monorepo", + "packageNames": Array [ + "pouchdb-abstract-mapreduce", + "pouchdb-adapter-fruitdown", + "pouchdb-adapter-http", + "pouchdb-adapter-idb", + "pouchdb-adapter-indexeddb", + "pouchdb-adapter-leveldb-core", + "pouchdb-adapter-leveldb", + "pouchdb-adapter-localstorage", + "pouchdb-adapter-memory", + "pouchdb-adapter-node-websql", + "pouchdb-adapter-utils", + "pouchdb-adapter-websql-core", + "pouchdb-adapter-websql", + "pouchdb-ajax", + "pouchdb-binary-utils", + "pouchdb-browser", + "pouchdb-changes-filter", + "pouchdb-checkpointer", + "pouchdb-collate", + "pouchdb-collections", + "pouchdb-core", + "pouchdb-debug", + "pouchdb-errors", + "pouchdb-find", + "pouchdb-for-coverage", + "pouchdb-generate-replication-id", + "pouchdb-json", + "pouchdb-mapreduce-utils", + "pouchdb-mapreduce", + "pouchdb-md5", + "pouchdb-merge", + "pouchdb-node", + "pouchdb-promise", + "pouchdb-replication", + "pouchdb-selector-core", + "pouchdb-utils", + "pouchdb", + "sublevel-pouchdb", + ], + }, + Object { + "description": Array [ + "Group packages from react monorepo together", + ], + "groupName": "react monorepo", + "packageNames": Array [ + "react-art", + "react-dom", + "react-noop-renderer", + "react-test-renderer", + "react", + ], + }, + Object { + "description": Array [ + "Group packages from storybook monorepo together", + ], + "groupName": "storybook monorepo", + "packagePatterns": Array [ + "^@storybook/", + ], + }, + ], +} +`; + exports[`config/presets resolvePreset resolves linters 1`] = ` Object { "description": Array [ diff --git a/test/config/presets.spec.js b/test/config/presets.spec.js index 529802422054016879b3a625c69de8ea15093315..56e03611b36c522a021372ce606c060754bf832d 100644 --- a/test/config/presets.spec.js +++ b/test/config/presets.spec.js @@ -3,6 +3,8 @@ const presets = require('../../lib/config/presets'); const logger = require('../_fixtures/logger'); const presetDefaults = require('../_fixtures/npm/renovate-config-default'); const presetPackages = require('../_fixtures/npm/renovate-config-packages'); +const presetGroup = require('../_fixtures/npm/renovate-config-group'); +const presetMonorepo = require('../_fixtures/npm/renovate-config-monorepo'); npm.getDependency = jest.fn(dep => { if (dep === 'renovate-config-default') { @@ -15,6 +17,16 @@ npm.getDependency = jest.fn(dep => { 'renovate-config': presetPackages.versions['0.0.1']['renovate-config'], }; } + if (dep === 'renovate-config-group') { + return { + 'renovate-config': presetGroup.versions['0.0.3']['renovate-config'], + }; + } + if (dep === 'renovate-config-monorepo') { + return { + 'renovate-config': presetMonorepo.versions['0.0.2']['renovate-config'], + }; + } if (dep === 'renovate-config-noconfig') { return {}; } @@ -69,6 +81,11 @@ describe('config/presets', () => { const res = await presets.resolveConfigPresets(config); expect(res).toMatchSnapshot(); }); + it('resolves group monorepos', async () => { + config.extends = ['group:monorepos']; + const res = await presets.resolveConfigPresets(config); + expect(res).toMatchSnapshot(); + }); it('combines two package alls', async () => { config.extends = ['packages:eslint', 'packages:stylelint']; const res = await presets.resolveConfigPresets(config);