diff --git a/dangerfile.js b/dangerfile.js index 148ea1c7c5..7966bf245f 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -7,6 +7,7 @@ const { danger, fail, message, warn } = require('danger'); const chainsmoker = require('chainsmoker'); +const { default: noTestShortcuts } = require('danger-plugin-no-test-shortcuts'); const fileMatch = chainsmoker({ created: danger.git.created_files, @@ -140,3 +141,11 @@ affectedServices.forEach(function(service) { ); } }); + +// Prevent merging exclusive services tests. +noTestShortcuts({ + testFilePredicate: filePath => filePath.endsWith('.tester.js'), + patterns: { + only: ['only()'], + }, +}); diff --git a/package-lock.json b/package-lock.json index 08022d73f1..57e99aa46d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -372,8 +372,7 @@ "acorn": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "optional": true + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" }, "acorn-dynamic-import": { "version": "2.0.2", @@ -2526,8 +2525,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -2548,14 +2546,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2570,20 +2566,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2700,8 +2693,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -2713,7 +2705,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2728,7 +2719,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2736,14 +2726,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2762,7 +2750,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -2843,8 +2830,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2856,7 +2842,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -2942,8 +2927,7 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -2979,7 +2963,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2999,7 +2982,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3043,14 +3025,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -3758,8 +3738,7 @@ "cssom": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "optional": true + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" }, "cssstyle": { "version": "0.2.37", @@ -3873,6 +3852,15 @@ } } }, + "danger-plugin-no-test-shortcuts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/danger-plugin-no-test-shortcuts/-/danger-plugin-no-test-shortcuts-2.0.0.tgz", + "integrity": "sha1-Atu3JFWBlFTTbNWVLi/w9H34ENo=", + "dev": true, + "requires": { + "lodash": "^4.17.4" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -8807,7 +8795,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -9838,8 +9825,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.3.1", diff --git a/package.json b/package.json index 5384375e93..67950e268c 100644 --- a/package.json +++ b/package.json @@ -120,6 +120,7 @@ "classnames": "^2.2.5", "concurrently": "^3.5.1", "danger": "^3.7.13", + "danger-plugin-no-test-shortcuts": "^2.0.0", "dejavu-fonts-ttf": "^2.37.3", "eslint": "^5.0.1", "eslint-config-prettier": "^3.0.1", diff --git a/services/npm/npm.tester.js b/services/npm/npm.tester.js index 0da4da90f6..3f1cd59f78 100644 --- a/services/npm/npm.tester.js +++ b/services/npm/npm.tester.js @@ -213,7 +213,6 @@ t.create('license when network is off') // This tests error-handling functionality in NpmBase. t.create('when json is malformed for scoped package') .get('/l/@cycle%2Fcore.json') - .only() .intercept(nock => nock('https://registry.npmjs.org') .get('/@cycle%2Fcore')