Add test of the server entrypoint (#2613)
The server's entrypoint is an important bit of code which is not covered by our tests. This adds a test which should cover it.
This commit is contained in:
29
entrypoint.spec.js
Normal file
29
entrypoint.spec.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const { expect } = require('chai')
|
||||||
|
const fetch = require('node-fetch')
|
||||||
|
const isSvg = require('is-svg')
|
||||||
|
const serverConfig = require('./lib/server-config')
|
||||||
|
|
||||||
|
let server
|
||||||
|
before(function() {
|
||||||
|
this.timeout('5s')
|
||||||
|
serverConfig.bind = {
|
||||||
|
port: 1111,
|
||||||
|
address: 'localhost',
|
||||||
|
}
|
||||||
|
server = require('./server')
|
||||||
|
})
|
||||||
|
|
||||||
|
after('shut down the server', async function() {
|
||||||
|
await server.stop()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should render a badge', async function() {
|
||||||
|
const res = await fetch('http://localhost:1111/badge/fruit-apple-green.svg')
|
||||||
|
expect(res.ok).to.be.true
|
||||||
|
expect(await res.text())
|
||||||
|
.to.satisfy(isSvg)
|
||||||
|
.and.to.include('fruit')
|
||||||
|
.and.to.include('apple')
|
||||||
|
})
|
||||||
@@ -61,11 +61,12 @@
|
|||||||
"coverage:test:server": "nyc npm run test:server",
|
"coverage:test:server": "nyc npm run test:server",
|
||||||
"coverage:test:frontend": "nyc --nycrc-path .nycrc-frontend.json npm run test:frontend",
|
"coverage:test:frontend": "nyc --nycrc-path .nycrc-frontend.json npm run test:frontend",
|
||||||
"coverage:test:package": "nyc npm run test:package",
|
"coverage:test:package": "nyc npm run test:package",
|
||||||
|
"coverage:test:entrypoint": "nyc npm run test:entrypoint",
|
||||||
"coverage:test:integration": "nyc npm run test:integration",
|
"coverage:test:integration": "nyc npm run test:integration",
|
||||||
"coverage:test:services": "nyc npm run test:services",
|
"coverage:test:services": "nyc npm run test:services",
|
||||||
"coverage:clean": "rimraf .nyc_output coverage",
|
"coverage:clean": "rimraf .nyc_output coverage",
|
||||||
"precoverage:test": "run-s --silent coverage:clean defs features",
|
"precoverage:test": "run-s --silent coverage:clean defs features",
|
||||||
"coverage:test": "run-s --silent --continue-on-error coverage:test:server coverage:test:package coverage:test:frontend coverage:test:integration",
|
"coverage:test": "run-s --silent --continue-on-error coverage:test:server coverage:test:package coverage:test:entrypoint coverage:test:frontend coverage:test:integration",
|
||||||
"coverage:report:generate": "nyc report",
|
"coverage:report:generate": "nyc report",
|
||||||
"coverage:report:open": "opn coverage/lcov-report/index.html",
|
"coverage:report:open": "opn coverage/lcov-report/index.html",
|
||||||
"coverage:report": "run-s --silent coverage:report:generate coverage:report:open",
|
"coverage:report": "run-s --silent coverage:report:generate coverage:report:open",
|
||||||
@@ -79,6 +80,7 @@
|
|||||||
"test:frontend": "cross-env BABEL_ENV=test mocha --opts mocha.opts --require @babel/polyfill --require @babel/register --require mocha-yaml-loader \"frontend/**/*.spec.js\"",
|
"test:frontend": "cross-env BABEL_ENV=test mocha --opts mocha.opts --require @babel/polyfill --require @babel/register --require mocha-yaml-loader \"frontend/**/*.spec.js\"",
|
||||||
"test:server": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts \"lib/**/*.spec.js\" \"services/**/*.spec.js\"",
|
"test:server": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts \"lib/**/*.spec.js\" \"services/**/*.spec.js\"",
|
||||||
"test:package": "mocha --opts mocha.opts \"gh-badges/**/*.spec.js\"",
|
"test:package": "mocha --opts mocha.opts \"gh-badges/**/*.spec.js\"",
|
||||||
|
"test:entrypoint": "mocha --opts mocha.opts entrypoint.spec.js",
|
||||||
"test:integration": "mocha --opts mocha.opts \"lib/**/*.integration.js\" \"services/**/*.integration.js\"",
|
"test:integration": "mocha --opts mocha.opts \"lib/**/*.integration.js\" \"services/**/*.integration.js\"",
|
||||||
"test:services": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts --delay lib/service-test-runner/cli.js",
|
"test:services": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts --delay lib/service-test-runner/cli.js",
|
||||||
"test:services:trace": "cross-env TRACE_SERVICES=true run-s --silent test:services -- $*",
|
"test:services:trace": "cross-env TRACE_SERVICES=true run-s --silent test:services -- $*",
|
||||||
@@ -86,7 +88,7 @@
|
|||||||
"test:services:pr:run": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts --delay lib/service-test-runner/cli.js --stdin < pull-request-services.log",
|
"test:services:pr:run": "cross-env HANDLE_INTERNAL_ERRORS=false mocha --opts mocha.opts --delay lib/service-test-runner/cli.js --stdin < pull-request-services.log",
|
||||||
"test:services:pr": "run-s --silent test:services:pr:prepare test:services:pr:run",
|
"test:services:pr": "run-s --silent test:services:pr:prepare test:services:pr:run",
|
||||||
"pretest": "run-s --silent defs features",
|
"pretest": "run-s --silent defs features",
|
||||||
"test": "run-s --silent --continue-on-error lint test:frontend test:package test:server prettier-check",
|
"test": "run-s --silent --continue-on-error lint test:frontend test:package test:server test:entrypoint prettier-check",
|
||||||
"depcheck": "check-node-version --node \">= 8.0\"",
|
"depcheck": "check-node-version --node \">= 8.0\"",
|
||||||
"postinstall": "run-s --silent depcheck",
|
"postinstall": "run-s --silent depcheck",
|
||||||
"prebuild": "run-s --silent depcheck",
|
"prebuild": "run-s --silent depcheck",
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ Raven.disableConsoleAlerts()
|
|||||||
const Server = require('./lib/server')
|
const Server = require('./lib/server')
|
||||||
const config = require('./lib/server-config')
|
const config = require('./lib/server-config')
|
||||||
|
|
||||||
|
const server = (module.exports = new Server(config))
|
||||||
|
|
||||||
;(async () => {
|
;(async () => {
|
||||||
try {
|
try {
|
||||||
await new Server(config).start()
|
await server.start()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user