test: add a babel example

master
jongleberry 2015-11-04 11:15:18 -08:00
parent 848a9c885b
commit 09ada29881
5 changed files with 55 additions and 2 deletions

View File

@ -5,7 +5,8 @@ REQUIRED = --require should --require should-http
TESTS = test/application/* \
test/context/* \
test/request/* \
test/response/*
test/response/* \
test/babel/index.js
lint:
@./node_modules/.bin/eslint lib test

View File

@ -42,8 +42,9 @@
"vary": "^1.0.0"
},
"devDependencies": {
"babel": "^5.0.0",
"babel-core": "^6.0.20",
"babel-eslint": "^4.1.3",
"babel-preset-stage-3": "^6.0.15",
"eslint": "^1.6.0",
"eslint-config-standard": "^4.4.0",
"eslint-plugin-standard": "^1.3.1",

3
test/babel/.babelrc Normal file
View File

@ -0,0 +1,3 @@
{
"presets": ["stage-3"]
}

42
test/babel/_test.js Normal file
View File

@ -0,0 +1,42 @@
'use strict';
const request = require('supertest');
const Koa = require('../..');
describe('require("babel-core/register")', () => {
describe('app.use(fn)', () => {
it('should compose middleware w/ async functions', done => {
const app = new Koa();
const calls = [];
app.use(async function (ctx, next){
calls.push(1);
await next();
calls.push(6);
});
app.use(async function (ctx, next){
calls.push(2);
await next();
calls.push(5);
});
app.use(async function (ctx, next){
calls.push(3);
await next();
calls.push(4);
});
const server = app.listen();
request(server)
.get('/')
.expect(404)
.end(err => {
if (err) return done(err);
calls.should.eql([1, 2, 3, 4, 5, 6]);
done();
});
});
});
});

6
test/babel/index.js Normal file
View File

@ -0,0 +1,6 @@
'ues strict';
// http://babeljs.io/docs/setup/#babel_register
require('babel-core/register');
require('./_test.js');