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:frontend": "nyc --nycrc-path .nycrc-frontend.json npm run test:frontend",
|
||||
"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:services": "nyc npm run test:services",
|
||||
"coverage:clean": "rimraf .nyc_output coverage",
|
||||
"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:open": "opn coverage/lcov-report/index.html",
|
||||
"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: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:entrypoint": "mocha --opts mocha.opts entrypoint.spec.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: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-s --silent test:services:pr:prepare test:services:pr:run",
|
||||
"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\"",
|
||||
"postinstall": "run-s --silent depcheck",
|
||||
"prebuild": "run-s --silent depcheck",
|
||||
|
||||
@@ -9,9 +9,11 @@ Raven.disableConsoleAlerts()
|
||||
const Server = require('./lib/server')
|
||||
const config = require('./lib/server-config')
|
||||
|
||||
const server = (module.exports = new Server(config))
|
||||
|
||||
;(async () => {
|
||||
try {
|
||||
await new Server(config).start()
|
||||
await server.start()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user