diff --git a/blog/app.js b/blog/app.js index ba6d366..06080ac 100644 --- a/blog/app.js +++ b/blog/app.js @@ -8,7 +8,7 @@ var logger = require('koa-logger'); var route = require('koa-route'); var parse = require('co-body'); var koa = require('koa'); -var app = koa(); +var app = module.exports = koa(); // "database" @@ -67,5 +67,5 @@ function *create() { // listen -app.listen(3000); -console.log('listening on port 3000'); \ No newline at end of file +if (!module.parent) app.listen(3000); + diff --git a/blog/test.js b/blog/test.js new file mode 100644 index 0000000..2cfcb62 --- /dev/null +++ b/blog/test.js @@ -0,0 +1,56 @@ +var app = require('./app'); +var request = require('supertest').agent(app.listen()); + +describe('Blog', function(){ + describe('GET /',function(){ + it('should see title "Posts"', function(done){ + request + .get('/') + .expect(200, function(err, res){ + if (err) return done(err); + + res.should.be.html; + res.text.should.include('
You have 0 posts!
'); + done(); + }); + }); + }); + describe('POST /post/new',function(){ + it('should create post and redirect to /', function(done){ + request + .post('/post') + .send({title: 'Title', body: 'Contents'}) + .end(function(err, res){ + if (err) return done(err); + + res.header.location.should.be.equal('/') + done(); + }); + }); + }); + describe('GET /post/0',function(){ + it('should see post', function(done){ + request + .get('/post/0') + .expect(200, function(err, res){ + if (err) return done(err); + + res.should.be.html; + res.text.should.include('Contents
') + done(); + }); + }); + }); +}); diff --git a/package.json b/package.json index 3f1aa16..59944fd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "co-body": "^1.0.0", "co-busboy": "^1.0.2", "co-fs": "^1.2.0", - "co-views": "^0.2.0", + "co-views": "^2.1.0", "ejs": "^1.0.0", "koa": "^1.0.0", "koa-basic-auth": "^1.1.1",