From 6b7f7a953629e775541bef4eaf1c700f0c69c077 Mon Sep 17 00:00:00 2001 From: Lloyd Brookes Date: Tue, 21 Mar 2017 23:46:53 +0000 Subject: [PATCH] basic test --- lib/local-web-server.js | 5 +++-- package.json | 6 ++++-- test/common.js | 22 --------------------- test/fixture/one.txt | 1 + test/test-middleware.js | 12 ------------ test/test.js | 52 +++++++++++++------------------------------------ 6 files changed, 21 insertions(+), 77 deletions(-) delete mode 100644 test/common.js create mode 100644 test/fixture/one.txt delete mode 100644 test/test-middleware.js diff --git a/lib/local-web-server.js b/lib/local-web-server.js index c17f2c4..8eba429 100644 --- a/lib/local-web-server.js +++ b/lib/local-web-server.js @@ -9,7 +9,7 @@ const Lws = require('lws') * @alias module:local-web-server */ class LocalWebServer extends Lws { - constructor () { + constructor (options) { const path = require('path') const stack = [ 'lws-log', @@ -28,7 +28,8 @@ class LocalWebServer extends Lws { ].map(name => { return path.resolve(__dirname, `../node_modules/${name}`) }) - super({ stack, 'config-name': 'local-web-server' }) + options = Object.assign({ stack }, options) + super(options) } getVersion () { diff --git a/package.json b/package.json index ebf393d..80b0e25 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "proxy" ], "engines": { - "node": ">=4.0.0" + "node": ">=7.6" }, "files": [ "bin", @@ -52,5 +52,7 @@ "lws-static": "^0.1.0", "lws": "^1.0.0-pre.2" }, - "devDependencies": {} + "devDependencies": { + "test-runner": "^0.3.0" + } } diff --git a/test/common.js b/test/common.js deleted file mode 100644 index 43d4ff1..0000000 --- a/test/common.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict' -const arrayify = require('array-back') - -exports.checkResponse = checkResponse -exports.fail = fail - -function checkResponse (t, status, bodyTests) { - return function (response) { - if (status) t.strictEqual(response.res.statusCode, status) - if (bodyTests) { - arrayify(bodyTests).forEach(body => { - t.ok(body.test(response.data), 'correct data') - }) - } - } -} - -function fail (t) { - return function (err) { - t.fail('failed: ' + err.stack) - } -} diff --git a/test/fixture/one.txt b/test/fixture/one.txt new file mode 100644 index 0000000..5626abf --- /dev/null +++ b/test/fixture/one.txt @@ -0,0 +1 @@ +one diff --git a/test/test-middleware.js b/test/test-middleware.js deleted file mode 100644 index 137438c..0000000 --- a/test/test-middleware.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' - -class TestMiddleware { - middleware (option) { - return function (ctx, next) { - ctx.body = '1234512345' - return next() - } - } -} - -module.exports = TestMiddleware diff --git a/test/test.js b/test/test.js index b1ba7ea..e7054b6 100644 --- a/test/test.js +++ b/test/test.js @@ -1,46 +1,20 @@ 'use strict' -const test = require('tape') +const TestRunner = require('test-runner') const request = require('req-then') const LocalWebServer = require('../') -const c = require('./common') -const path = require('path') +const a = require('assert') -test('stack', function (t) { - t.plan(2) - const ws = new LocalWebServer({ - stack: [ path.resolve(__dirname, 'test-middleware.js') ], - port: 8100, - testMode: true - }) - ws.server.on('listening', () => { - return request('http://localhost:8100/') - .then(c.checkResponse(t, 200, /1234512345/)) - .then(ws.server.close.bind(ws.server)) - .catch(err => { - t.fail(err.message) - ws.server.close() - }) - }) -}) +const runner = new TestRunner() -test('https', function (t) { - t.plan(2) - const ws = new LocalWebServer({ - stack: [ path.resolve(__dirname, 'test-middleware.js') ], - https: true, - port: 8100, - testMode: true - }) - const url = require('url') - const reqOptions = url.parse('https://localhost:8100/') - reqOptions.rejectUnauthorized = false - ws.server.on('listening', () => { - return request(reqOptions) - .then(c.checkResponse(t, 200, /1234512345/)) - .then(ws.server.close.bind(ws.server)) - .catch(err => { - t.fail(err.message) - ws.server.close() - }) +runner.test('basic', async function () { + const port = 9000 + this.index + const localWebServer = new LocalWebServer({ + port: port, + 'static.root': 'test/fixture', + 'log.format': 'none' }) + localWebServer.start() + const response = await request(`http://localhost:${port}/one.txt`) + localWebServer.server.close() + a.strictEqual(response.data.toString(), 'one\n') })