Move service tests alongside code (#1563)

Per discussion in #1543
This commit is contained in:
Paul Melnikow
2018-03-20 18:32:48 -07:00
committed by GitHub
parent 71ef474afc
commit ea4b758612
98 changed files with 186 additions and 183 deletions
+1 -1
View File
@@ -119,7 +119,7 @@ e.g. **[Travis] Fix timeout issues**
When changing other code, please add unit tests.
[service-tests]: https://github.com/badges/shields/blob/master/service-tests/README.md
[service-tests]: https://github.com/badges/shields/blob/master/doc/service-tests.md
### Code organization
+1 -1
View File
@@ -71,7 +71,7 @@ maybe you'd like to open a pull request to address one of them:
You can read a [tutorial on how to add a badge][tutorial].
[service-tests]: https://github.com/badges/shields/blob/master/service-tests/README.md
[service-tests]: https://github.com/badges/shields/blob/master/doc/service-tests.md
[tutorial]: doc/TUTORIAL.md
[contributing]: CONTRIBUTING.md
+1 -1
View File
@@ -17,7 +17,7 @@ const documentation = fileMatch(
'frontend/components/usage.js'
);
const server = fileMatch('server.js');
const serviceTests = fileMatch('service-tests/*.js');
const serviceTests = fileMatch('services/**/*.tester.js');
const helpers = fileMatch(
'lib/**/*.js',
'!**/*.spec.js',
@@ -90,14 +90,14 @@ already:
npm i
```
We'll start by creating a new module, `service-tests/travis.js`, using this
boilerplate:
We'll start by creating a new module, `services/travis/travis.tester.js`,
using this boilerplate:
```js
'use strict';
const Joi = require('joi'); // 1
const ServiceTester = require('./runner/service-tester'); // 2
const ServiceTester = require('../service-tester'); // 2
const t = new ServiceTester({ id: 'travis', title: 'Travis CI' }) // 3
module.exports = t; // 4
@@ -305,7 +305,7 @@ Complete example
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'travis', title: 'Travis CI' });
module.exports = t;
@@ -16,7 +16,7 @@ class Runner {
* Prepare the runner by loading up all the ServiceTester objects.
*/
prepare () {
this.testers = glob.sync(`${__dirname}/../*.js`).map(name => require(name));
this.testers = glob.sync(`${__dirname}/../../services/**/*.tester.js`).map(name => require(name));
this.testers.forEach(tester => {
tester.beforeEach = () => { this.beforeEach(); };
});
+6 -6
View File
@@ -46,8 +46,8 @@
"xpath": "~0.0.27"
},
"scripts": {
"coverage:test:js": "nyc node_modules/mocha/bin/_mocha '*.spec.js' 'lib/**/*.spec.js' 'service-tests/**/*.spec.js'",
"coverage:test:services": "nyc node_modules/mocha/bin/_mocha --delay service-tests/runner/cli.js",
"coverage:test:js": "nyc node_modules/mocha/bin/_mocha '*.spec.js' 'lib/**/*.spec.js' 'services/**/*.spec.js'",
"coverage:test:services": "nyc node_modules/mocha/bin/_mocha --delay lib/service-test-runner/cli.js",
"coverage:test": "rimraf .nyc_output coverage; npm run coverage:test:js; npm run coverage:test:services",
"coverage:report": "nyc report",
"coverage:report:reopen": "opn coverage/lcov-report/index.html",
@@ -55,10 +55,10 @@
"lint": "eslint '**/*.js'",
"danger": "danger",
"test:js:frontend": "NODE_ENV=mocha mocha --require babel-polyfill --require babel-register 'frontend/**/*.spec.js'",
"test:js:server": "mocha '*.spec.js' 'lib/**/*.spec.js' 'services/**/*.spec.js' 'service-tests/**/*.spec.js'",
"test:services": "mocha --delay service-tests/runner/cli.js",
"test:services:pr:prepare": "node service-tests/runner/pull-request-services-cli.js > pull-request-services.log",
"test:services:pr:run": "mocha --delay service-tests/runner/cli.js --stdin < pull-request-services.log",
"test:js:server": "mocha '*.spec.js' 'lib/**/*.spec.js' 'services/**/*.spec.js'",
"test:services": "mocha --delay lib/service-test-runner/cli.js",
"test:services:pr:prepare": "node lib/service-test-runner/pull-request-services-cli.js > pull-request-services.log",
"test:services:pr:run": "mocha --delay lib/service-test-runner/cli.js --stdin < pull-request-services.log",
"test:services:pr": "npm run test:services:pr:prepare && npm run test:services:pr:run",
"test": "npm run lint && npm run test:js:frontend && npm run test:js:server",
"circle-images:build": "docker build -t shieldsio/shields-ci-node-8:${IMAGE_TAG} -f .circleci/images/node-8/Dockerfile . && docker build -t shieldsio/shields-ci-node-9:${IMAGE_TAG} -f .circleci/images/node-9/Dockerfile .",
+5 -2
View File
@@ -196,9 +196,12 @@ camp.notfound(/.*/, function(query, match, end, request) {
// Vendors.
// Match modules with the same name as their containing directory.
// e.g. services/appveyor/appveyor.js
const serviceRegex = /\/services\/(.*)\/\1\.js$/;
// New-style services
glob.sync(`${__dirname}/services/*.js`)
.filter(path => !path.endsWith('base.js') && !path.endsWith('.spec.js'))
glob.sync(`${__dirname}/services/**/*.js`)
.filter(path => serviceRegex.test(path))
.map(path => require(path))
.forEach(serviceClass => serviceClass.register(camp, cache));
@@ -1,12 +1,12 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isStarRating,
isVPlusDottedVersionAtLeastOne,
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'amo', title: 'Mozilla Addons' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isMetric } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isMetric } = require('../test-validators');
const t = new ServiceTester({ id: 'ansible', title: 'Ansible Galaxy' });
module.exports = t;
@@ -1,6 +1,6 @@
'use strict';
const BaseService = require('./base');
const BaseService = require('../base');
/**
* AppVeyor CI integration.
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isAppveyorBuildState = Joi.equal('failing', 'passing', 'running', 'queued');
const isAppveyorTestTotals =
+2 -2
View File
@@ -138,12 +138,12 @@ module.exports = class BaseService {
}
static register(camp, handleRequest) {
const serviceClass = this; // In a static context, "this" is the class.
const ServiceClass = this; // In a static context, "this" is the class.
camp.route(this._regex,
handleRequest(async (queryParams, match, sendBadge, request) => {
const namedParams = this._namedParamsForMatch(match);
const serviceInstance = new serviceClass({
const serviceInstance = new ServiceClass({
sendAndCacheRequest: request.asPromise,
});
const serviceData = await serviceInstance.invokeHandler(namedParams);
@@ -1,12 +1,12 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isMetricOpenIssues
} = require('./helpers/validators.js');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'bitbucket', title: 'Bitbucket badges' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'bitrise', title: 'Bitrise' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'bountysource', title: 'Bountysource' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('../test-validators');
const isBowerPrereleaseVersion = Joi.string().regex(/^v\d+(\.\d+)?(\.\d+)?(-?[.\w\d])+?$/);
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const bzBugStatus = Joi.equal(
'unconfirmed',
@@ -1,8 +1,8 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('./runner/service-tester')
const { isFileSize } = require('./helpers/validators')
const ServiceTester = require('../service-tester')
const { isFileSize } = require('../test-validators')
const t = new ServiceTester({
id: 'bundlephobia', title: 'NPM package bundle size',
@@ -1,6 +1,6 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'cauditor', title: 'Cauditor' });
module.exports = t;
@@ -1,9 +1,9 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isVPlusTripleDottedVersion } = require('./helpers/validators.js');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { isVPlusTripleDottedVersion } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'cdnjs', title: 'CDNJs' });
module.exports = t;
@@ -1,19 +1,19 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isVPlusDottedVersionNClauses,
isVPlusDottedVersionNClausesWithOptionalSuffix,
} = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
} = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const {
nuGetV2VersionJsonWithDash,
nuGetV2VersionJsonFirstCharZero,
nuGetV2VersionJsonFirstCharNotZero
} = require('./helpers/nuget-fixtures.js');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../nuget-fixtures');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'chocolatey', title: 'Chocolatey' });
module.exports = t;
@@ -1,13 +1,13 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isVPlusDottedVersionAtLeastOne,
isStarRating,
isMetric
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'chrome-web-store', title: 'Chrome Web Store' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const isBuildStatus = Joi.string().regex(/^(passing|failed|no tests|scheduled|not run)$/);
const t = new ServiceTester({ id: 'circleci', title: 'Circle CI' });
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'clojars', title: 'clojars' });
module.exports = t;
@@ -1,14 +1,14 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isMetricOverTimePeriod,
isIntegerPercentage,
isVPlusDottedVersionAtLeastOne,
} = require('./helpers/validators');
} = require('../test-validators');
const isPlatform = Joi.string().regex(/^(osx|ios|tvos|watchos)( \| (osx|ios|tvos|watchos))*$/);
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isIntegerPercentage,
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'codeclimate', title: 'Code Climate' })
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isIntegerPercentage } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isIntegerPercentage } = require('../test-validators');
const t = new ServiceTester({ id: 'codecov', title: 'Codecov.io' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isBuildStatus = Joi.string().regex(/^(passing|pending|failing|not built)$/);
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'codetally', title: 'Codetally' });
module.exports = t;
@@ -1,11 +1,11 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isVPlusTripleDottedVersion,
isMetric
} = require('./helpers/validators');
} = require('../test-validators');
const isCondaPlatform = Joi.string().regex(/^\w+-\d+( \| \w+-\d+)*$/);
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'continuousphp', title: 'continuousphp' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isIntegerPercentage } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isIntegerPercentage } = require('../test-validators');
const t = new ServiceTester({ id: 'coveralls', title: 'Coveralls.io' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isVPlusTripleDottedVersion } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isVPlusTripleDottedVersion } = require('../test-validators');
const t = new ServiceTester({ id: 'cran', title: 'CRAN/METACRAN' });
module.exports = t;
@@ -1,6 +1,6 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'crates', title: 'crates.io' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isDependencyStatus = Joi.string().valid('insecure', 'up to date', 'out of date');
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isDependencyStatus = Joi.string().valid('insecure', 'latest', 'recent', 'stale');
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'discord', title: 'Discord' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'discourse', title: 'Discourse' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'dockbit', title: 'Dockbit' });
module.exports = t;
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { isMetric } = require('./helpers/validators.js');
const { invalidJSON } = require('./helpers/response-fixtures');
const { isMetric } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const isAutomatedBuildStatus = Joi.string().valid('automated', 'manual');
const isBuildStatus = Joi.string().regex(/^(passing|failing|building)$/);
@@ -1,7 +1,7 @@
"use strict";
const Joi = require("joi");
const ServiceTester = require("./runner/service-tester");
const ServiceTester = require('../service-tester');
const t = new ServiceTester({
id: "dotnetstatus",
@@ -1,16 +1,16 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const colorscheme = require('../lib/colorscheme.json');
const { invalidJSON } = require('../response-fixtures');
const colorscheme = require('../../lib/colorscheme.json');
const {
isVPlusDottedVersionNClausesWithOptionalSuffix,
isMetric,
isMetricOverTimePeriod
} = require('./helpers/validators');
} = require('../test-validators');
const isVersionColor = Joi.equal(
colorscheme.red.colorB,
colorscheme.yellow.colorB,
@@ -1,13 +1,13 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isFormattedDate,
isMetric,
isMetricOverTimePeriod,
isVPlusDottedVersionAtLeastOne
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'eclipse-marketplace', title: 'Eclipse' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isSemver } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isSemver } = require('../test-validators');
const t = new ServiceTester({ id: 'elm-package', title: 'ELM PACKAGE' });
module.exports = t;
@@ -1,13 +1,13 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isVPlusDottedVersionAtLeastOne,
isMetric
} = require('./helpers/validators');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const isOrdinalNumber = Joi.string().regex(/^[1-9][0-9]+(ᵗʰ|ˢᵗ|ⁿᵈ|ʳᵈ)$/);
const isOrdinalNumberDaily = Joi.string().regex(/^[1-9][0-9]+(ᵗʰ|ˢᵗ|ⁿᵈ|ʳᵈ) daily$/);
@@ -1,9 +1,9 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { expect } = require('chai')
const { isDeprecated } = require('../lib/deprecation-helpers');
const { isDeprecated } = require('../../lib/deprecation-helpers');
const t = new ServiceTester({ id: 'gemnasium', title: 'gemnasium' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isMetricOpenIssues,
@@ -9,10 +9,10 @@ const {
isFileSize,
isFormattedDate,
isVPlusDottedVersionAtLeastOne
} = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
const {licenseToColor} = require('../lib/licenses');
const {makeColor} = require('../lib/badge-data');
} = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const {licenseToColor} = require('../../lib/licenses');
const {makeColor} = require('../../lib/badge-data');
const mapValues = require('lodash.mapvalues');
const t = new ServiceTester({ id: 'github', title: 'Github' });
@@ -1,6 +1,6 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'gratipay', title: 'Gratipay' });
module.exports = t;
@@ -1,9 +1,9 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('./helpers/validators');
const { isVPlusDottedVersionAtLeastOne } = require('../test-validators');
const t = new ServiceTester({ id: 'hackage', title: 'Hackage' });
module.exports = t;
@@ -1,11 +1,11 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isMetricOverTimePeriod
} = require('./helpers/validators');
} = require('../test-validators');
const isHexpmVersion = Joi.string().regex(/^v\d+.\d+.?\d?$/);
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'hhvm', title: 'hhvm status' });
@@ -1,9 +1,9 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isVPlusTripleDottedVersion } = require('./helpers/validators.js');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { isVPlusTripleDottedVersion } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'homebrew', title: 'homebrew' });
module.exports = t;
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('./helpers/validators');
const { invalidJSON } = require('./helpers/response-fixtures');
const { isVPlusDottedVersionAtLeastOne } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'itunes', title: 'iTunes' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'jenkins', title: 'Jenkins' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isMetric, isSemver } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isMetric, isSemver } = require('../test-validators');
const t = new ServiceTester({ id: 'jetbrains', title: 'JetBrains' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
// Github allows versions with chars, etc.
const isAnyV = Joi.string().regex(/^v.+$/);
@@ -2,8 +2,8 @@
const Joi = require('joi');
const { expect } = require('chai');
const ServiceTester = require('./runner/service-tester');
const colorscheme = require('../lib/colorscheme.json');
const ServiceTester = require('../service-tester');
const colorscheme = require('../../lib/colorscheme.json');
const mapValues = require('lodash.mapvalues');
const colorsB = mapValues(colorscheme, 'colorB');
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isLiberapayTestValues =
Joi.string().regex(/^([0-9]*[1-9][0-9]*(\.[0-9]+)?|[0]+\.[0-9]*[1-9][0-9]*)[ A-Za-z]{4}\/week/); //values must be greater than zero
const {isMetric} = require('./helpers/validators');
const {isMetric} = require('../test-validators');
const t = new ServiceTester({ id: 'liberapay', title: 'Liberapay' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'luarocks', title: 'LuaRocks' });
module.exports = t;
@@ -1,6 +1,6 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'maintenance', title: 'Maintenance' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'maven-central', title: 'Maven Central' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isVPlusDottedVersionAtLeastOne } = require('../test-validators');
const t = new ServiceTester({ id: 'maven-metadata', title: 'maven-metadata badge' });
module.exports = t;
@@ -1,9 +1,9 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isFileSize } = require('./helpers/validators');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { isFileSize } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'microbadger', title: 'MicroBadger' });
module.exports = t;
@@ -1,20 +1,20 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isVPlusDottedVersionNClauses,
isVPlusDottedVersionNClausesWithOptionalSuffix,
} = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
} = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const {
queryIndex,
nuGetV3VersionJsonWithDash,
nuGetV3VersionJsonFirstCharZero,
nuGetV3VersionJsonFirstCharNotZero,
} = require('./helpers/nuget-fixtures.js');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../nuget-fixtures');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'myget', title: 'MyGet' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'nexus', title: 'Nexus' });
module.exports = t;
@@ -2,7 +2,7 @@
const { expect } = require('chai');
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const { Range } = require('semver');
const t = new ServiceTester({ id: 'node', title: 'Node' });
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isMetric, isSemver } = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { isMetric, isSemver } = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const { invalidJSON } = require('../response-fixtures');
const mapValues = require('lodash.mapvalues');
const t = new ServiceTester({ id: 'npm', title: 'NPM' });
@@ -1,7 +1,7 @@
'use strict'
const Joi = require('joi')
const ServiceTester = require('./runner/service-tester')
const ServiceTester = require('../service-tester')
const t = new ServiceTester({id: 'nsp', title: 'Node Security Platform'})
@@ -1,20 +1,20 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isVPlusDottedVersionNClauses,
isVPlusDottedVersionNClausesWithOptionalSuffix,
} = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
} = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const {
queryIndex,
nuGetV3VersionJsonWithDash,
nuGetV3VersionJsonFirstCharZero,
nuGetV3VersionJsonFirstCharNotZero,
} = require('./helpers/nuget-fixtures.js');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../nuget-fixtures');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'nuget', title: 'NuGet' });
module.exports = t;
@@ -1,12 +1,12 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isComposerVersion,
isMetric,
isMetricOverTimePeriod
} = require('./helpers/validators');
} = require('../test-validators');
/*
validator for a packagist version number
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isPhpVersionReduction
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'php-eye', title: 'PHP version from PHP-Eye' });
module.exports = t;
@@ -1,19 +1,19 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isVPlusDottedVersionNClauses,
isVPlusDottedVersionNClausesWithOptionalSuffix,
} = require('./helpers/validators');
const colorscheme = require('../lib/colorscheme.json');
} = require('../test-validators');
const colorscheme = require('../../lib/colorscheme.json');
const {
nuGetV2VersionJsonWithDash,
nuGetV2VersionJsonFirstCharZero,
nuGetV2VersionJsonFirstCharNotZero
} = require('./helpers/nuget-fixtures.js');
const { invalidJSON } = require('./helpers/response-fixtures');
} = require('../nuget-fixtures');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'powershellgallery', title: 'PowerShell Gallery' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { isSemver } = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const { isSemver } = require('../test-validators');
const isPsycopg2Version = Joi.string().regex(/^v([0-9][.]?)+$/);
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'readthedocs', title: 'Read the Docs' })
module.exports = t;
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isStarRating
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'redmine', title: 'Redmine' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const isRequireStatus = Joi.string().regex(/^(up to date|outdated|insecure|unknown)$/);
@@ -1,7 +1,7 @@
'use strict';
const frisby = require('icedfrisby-nock')(require('icedfrisby'));
const config = require('../../lib/test-config');
const config = require('../lib/test-config');
/**
* Encapsulate a suite of tests. Create new tests using create() and register
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const isBuildStatus = Joi.string().regex(/^(waiting|queued|processing|success|skipped|unstable|timeout|cancelled|failed|stopped)$/);
@@ -1,6 +1,6 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'snap-ci', title: 'Snap CI' });
module.exports = t;
@@ -1,10 +1,10 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isIntegerPercentage,
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'sonar', title: 'SonarQube' });
module.exports = t;
@@ -3,8 +3,8 @@
// These tests are for the badge-suggestion endpoint in lib/suggest.js. This
// endpoint is called from frontend/components/suggestion-and-search.js.
const ServiceTester = require('./runner/service-tester');
const { invalidJSON } = require('./helpers/response-fixtures');
const ServiceTester = require('../service-tester');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'suggest', title: 'suggest', pathPrefix: '/$suggest' });
module.exports = t;
@@ -1,8 +1,8 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const {isPhpVersionReduction} = require('./helpers/validators');
const ServiceTester = require('../service-tester');
const {isPhpVersionReduction} = require('../test-validators');
const t = new ServiceTester({ id: 'travis', title: 'Travis CI/PHP version from .travis.yml' });
module.exports = t;
@@ -1,11 +1,11 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'twitter', title: 'Twitter' });
module.exports = t;
@@ -1,11 +1,11 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const isUptimeStatus = Joi.string().regex(/^(paused|not checked yet|up|seems down|down)$/);
const { isPercentage } = require('./helpers/validators');
const { invalidJSON } = require('./helpers/response-fixtures');
const { isPercentage } = require('../test-validators');
const { invalidJSON } = require('../response-fixtures');
const t = new ServiceTester({ id: 'uptimerobot', title: 'Uptime Robot' });
module.exports = t;
@@ -1,14 +1,14 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
// Get validate function from validator.js lib
const {
isSemver,
isStarRating,
isFormattedDate
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({
id: 'vaadin-directory',
@@ -1,12 +1,12 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isVPlusTripleDottedVersion,
isMetric,
isStarRating
} = require('./helpers/validators');
} = require('../test-validators');
const isVscodeRating = Joi.string().regex(/[0-5].[0-9]{2}\/5?\s*\([0-9]*\)$/);
@@ -1,7 +1,7 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const t = new ServiceTester({ id: 'waffle', title: 'Waffle.io' });
module.exports = t;
@@ -1,7 +1,7 @@
'use strict';
const ServiceTester = require('./runner/service-tester');
const colorscheme = require('../lib/colorscheme.json');
const ServiceTester = require('../service-tester');
const colorscheme = require('../../lib/colorscheme.json');
const mapValues = require('lodash.mapvalues');
const t = new ServiceTester({ id: 'website', title: 'website' });
@@ -1,12 +1,12 @@
'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isMetric,
isStarRating,
isVPlusDottedVersionAtLeastOne
} = require('./helpers/validators');
} = require('../test-validators');
const t = new ServiceTester({ id: 'wordpress', title: 'Wordpress' });
module.exports = t;
@@ -2,12 +2,12 @@
const Joi = require('joi');
const { expect } = require('chai');
const ServiceTester = require('./runner/service-tester');
const ServiceTester = require('../service-tester');
const {
isSemver,
} = require('./helpers/validators');
} = require('../test-validators');
const colorscheme = require('../lib/colorscheme.json');
const colorscheme = require('../../lib/colorscheme.json');
const mapValues = require('lodash.mapvalues');
const colorsB = mapValues(colorscheme, 'colorB');