diff --git a/package.json b/package.json index 8dbb921..1f63b7b 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,9 @@ "save-to": "~1.0.0", "raw-body": "~1.1.1", "co-fs": "~1.1.1", - "co-body": "0.0.1" + "co-body": "0.0.1", + "co-views": "~0.1.0", + "ejs": "~0.8.5" }, "devDependencies": { "co": "*", diff --git a/templates/index.js b/templates/index.js new file mode 100644 index 0000000..bbbbe12 --- /dev/null +++ b/templates/index.js @@ -0,0 +1,28 @@ + +var views = require('co-views'); +var koa = require('koa'); +var app = module.exports = koa(); + +// setup views, appending .ejs +// when no extname is given to render() + +var render = views(__dirname + '/views', { ext: 'ejs' }); + +// dummy data + +var user = { + name: { + first: 'Tobi', + last: 'Holowaychuk' + }, + species: 'ferret', + age: 3 +}; + +// render + +app.use(function *(){ + this.body = yield render('user', { user: user }); +}) + +if (!module.parent) app.listen(4000); diff --git a/templates/test.js b/templates/test.js new file mode 100644 index 0000000..88cb0c2 --- /dev/null +++ b/templates/test.js @@ -0,0 +1,13 @@ +var app = require('./'); +var request = require('supertest').agent(app.listen()); + +describe('Templates', function(){ + describe('GET /', function(){ + it('should respond with a rendered view', function(done){ + request + .get('/') + .expect(200) + .expect('
Tobi is a 3 year old ferret.
', done); + }) + }) +}) \ No newline at end of file diff --git a/templates/user.ejs b/templates/views/user.ejs similarity index 100% rename from templates/user.ejs rename to templates/views/user.ejs