basic test

This commit is contained in:
Lloyd Brookes
2017-03-21 23:46:53 +00:00
parent 35e7276918
commit 6b7f7a9536
6 changed files with 21 additions and 77 deletions

View File

@ -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)
}
}

1
test/fixture/one.txt Normal file
View File

@ -0,0 +1 @@
one

View File

@ -1,12 +0,0 @@
'use strict'
class TestMiddleware {
middleware (option) {
return function (ctx, next) {
ctx.body = '1234512345'
return next()
}
}
}
module.exports = TestMiddleware

View File

@ -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')
})