Add full coverage

This commit is contained in:
Tiago Ribeiro 2014-09-08 23:53:46 +01:00
parent 473cd68a55
commit a85f580983
4 changed files with 89 additions and 4 deletions

View file

@ -39,11 +39,12 @@
"only": "0.0.2" "only": "0.0.2"
}, },
"devDependencies": { "devDependencies": {
"should": "^3.1.0",
"mocha": "^1.17.0",
"supertest": "~0.13.0",
"istanbul-harmony": "~0.3.0", "istanbul-harmony": "~0.3.0",
"make-lint": "^1.0.1" "make-lint": "^1.0.1",
"mocha": "^1.17.0",
"should": "^3.1.0",
"supertest": "~0.13.0",
"test-console": "^0.7.1"
}, },
"engines": { "engines": {
"node": ">= 0.11.13" "node": ">= 0.11.13"

View file

@ -4,6 +4,8 @@ var assert = require('assert');
var http = require('http'); var http = require('http');
var koa = require('..'); var koa = require('..');
var fs = require('fs'); var fs = require('fs');
var stderr = require("test-console").stderr;
var AssertionError = assert.AssertionError;
describe('app', function(){ describe('app', function(){
it('should handle socket errors', function(done){ it('should handle socket errors', function(done){
@ -114,6 +116,67 @@ describe('app.use(fn)', function(){
}) })
}) })
describe('app.onerror(err)', function(){
it('should throw an error if a non-error is given', function(done){
var app = koa();
try {
app.onerror('foo');
should.fail();
} catch (err) {
err.should.be.instanceOf(AssertionError);
err.message.should.equal('non-error thrown: foo');
}
done();
})
it('should do nothing if status is 404', function(done){
var app = koa();
var err = new Error();
err.status = 404;
var output = stderr.inspectSync(function() {
app.onerror(err);
});
output.should.eql([]);
done();
})
it('should do nothing if env is test', function(done){
var app = koa();
var err = new Error();
var output = stderr.inspectSync(function() {
app.onerror(err);
});
output.should.eql([]);
done();
})
it('should log the error to stderr', function(done){
var app = koa();
app.env = 'dev';
var err = new Error();
err.stack = 'Foo';
var output = stderr.inspectSync(function() {
app.onerror(err);
});
output.should.eql(["\n", " Foo\n", "\n"]);
done();
})
})
describe('app.respond', function(){ describe('app.respond', function(){
describe('when this.respond === false', function(){ describe('when this.respond === false', function(){
it('should bypass app.respond', function(done){ it('should bypass app.respond', function(done){

11
test/context/inspect.js Normal file
View file

@ -0,0 +1,11 @@
var context = require('../context');
describe('ctx.inspect()', function(){
it('should return a json representation', function(){
var ctx = context();
var toJSON = ctx.toJSON(ctx);
toJSON.should.eql(ctx.inspect());
})
})

10
test/response/socket.js Normal file
View file

@ -0,0 +1,10 @@
var Stream = require('stream');
var response = require('../context').response;
describe('res.socket', function(){
it('should return the request socket object', function(){
var res = response();
res.socket.should.be.instanceOf(Stream);
})
})