From 705fe785714b792654fe867d61cc4348f58b9e3c Mon Sep 17 00:00:00 2001 From: Madhusudhan Srinivasa Date: Tue, 24 Nov 2015 13:08:16 +0100 Subject: [PATCH] update ava and tests --- config/passport/local.js | 3 +- config/routes.js | 2 +- package.json | 3 +- test/_test-articles-get.js | 54 ------------------- test/test-articles-create.js | 44 ++++++--------- ...t-users-create.js => test-users-create.js} | 5 +- 6 files changed, 22 insertions(+), 89 deletions(-) delete mode 100644 test/_test-articles-get.js rename test/{_test-users-create.js => test-users-create.js} (97%) diff --git a/config/passport/local.js b/config/passport/local.js index 94f5dd7bb..aeac5610e 100644 --- a/config/passport/local.js +++ b/config/passport/local.js @@ -6,7 +6,6 @@ const mongoose = require('mongoose'); const LocalStrategy = require('passport-local').Strategy; -const config = require('../config'); const User = mongoose.model('User'); /** @@ -23,7 +22,7 @@ module.exports = new LocalStrategy({ select: 'name username email hashed_password salt' }; User.load(options, function (err, user) { - if (err) return done(err) + if (err) return done(err); if (!user) { return done(null, false, { message: 'Unknown user' }); } diff --git a/config/routes.js b/config/routes.js index e286db0e2..55cd04d54 100644 --- a/config/routes.js +++ b/config/routes.js @@ -123,7 +123,7 @@ module.exports = function (app, passport) { return next(); } - console.error(err.stack); + // console.error(err.stack); if (err.stack.includes('ValidationError')) { res.status(422).render('422', { error: err.stack }); diff --git a/package.json b/package.json index 1c00bcef8..2fbe98c28 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "express": "~4.13.3", "express-session": "~1.12.1", "forever": "~0.15.1", - "imager": "~1.0.0-alpha1", "method-override": "~2.3.5", "mongoose": "~4.2.7", "morgan": "~1.6.1", @@ -55,7 +54,7 @@ "winston": "~2.1.1" }, "devDependencies": { - "ava": "~0.5.0", + "ava": "~0.6.0", "nodemon": "*", "supertest": "*" } diff --git a/test/_test-articles-get.js b/test/_test-articles-get.js deleted file mode 100644 index 13992cc03..000000000 --- a/test/_test-articles-get.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -/** - * Module dependencies. - */ - -const mongoose = require('mongoose'); -const test = require('ava'); -const request = require('supertest'); -const app = require('../server'); -const cleanup = require('./helper').cleanup; -const User = mongoose.model('User'); -const Article = mongoose.model('Article'); -const agent = request.agent(app); - -test.beforeEach(t => cleanup(t.end)); - -test('GET /articles - should respond with Content-Type text/html', t => { - agent - .get('/articles') - .expect('Content-Type', /html/) - .expect(200) - .expect(/Articles/) - .end(t.end); -}); - -test('GET /articles/new - When not logged in - should redirect to /login', t => { - agent - .get('/articles/new') - .expect('Content-Type', /plain/) - .expect(302) - .expect('Location', '/login') - .expect(/Moved Temporarily/) - .end(t.end); -}); - -test.before(t => { - // login the user - agent - .post('/users/session') - .field('email', 'foobar@example.com') - .field('password', 'foobar') - .end(t.end); -}); - -test('GET /articles/new - When logged in - should respond with Content-Type text/html', t => { - agent - .get('/articles/new') - .expect('Content-Type', /html/) - .expect(200) - .expect(/New Article/) - .end(t.end); -}); - diff --git a/test/test-articles-create.js b/test/test-articles-create.js index 44c0f5be9..172bb8fe5 100644 --- a/test/test-articles-create.js +++ b/test/test-articles-create.js @@ -11,6 +11,7 @@ const app = require('../server'); const cleanup = require('./helper').cleanup; const User = mongoose.model('User'); const Article = mongoose.model('Article'); +const agent = request.agent(app); const _user = { email: 'foo@email.com', @@ -21,32 +22,23 @@ const _user = { test.before(cleanup); -test.beforeEach(cleanup); - - -// user login -test.beforeEach(async t => { - const ctx = global.Promise.defer(); - const agent = request.agent(app); +test.before(async t => { const user = new User(_user); + return await user.save(t.end); +}); - user.save().then(() => { - agent - .post('/users/session') - .field('email', _user.email) - .field('password', _user.password) - .expect('Location', '/') - .expect('Content-Type', /text/) - .end((err, res) => { - ctx.resolve(res.headers['set-cookie']); - }); - }); - - t.context.agent = agent; - t.context.cookie = await ctx.promise; - t.end(); +test.beforeEach(t => { + agent + .post('/users/session') + .field('email', _user.email) + .field('password', _user.password) + .expect('Location', '/') + .expect('Content-Type', /text/) + .end(t.end); }); +test.after(cleanup); + test('POST /articles - when not logged in - should redirect to /login', t => { request(app) @@ -60,13 +52,12 @@ test('POST /articles - when not logged in - should redirect to /login', t => { test('POST /articles - invalid form - should respond with error', t => { - t.context.agent + agent .post('/articles') .field('title', '') .field('body', 'foo') - .set('cookie', t.context.cookie) .expect('Content-Type', /text/) - .expect(302) + .expect(422) .expect(/Article title cannot be blank/) .end(async err => { const count = await Article.count().exec(); @@ -78,11 +69,10 @@ test('POST /articles - invalid form - should respond with error', t => { test('POST /articles - valid form - should redirect to the new article page', t => { - t.context.agent + agent .post('/articles') .field('title', 'foo') .field('body', 'bar') - .set('cookie', t.context.cookie) .expect('Content-Type', /plain/) .expect('Location', /\/articles\//) .expect(302) diff --git a/test/_test-users-create.js b/test/test-users-create.js similarity index 97% rename from test/_test-users-create.js rename to test/test-users-create.js index e7f0594ad..efe9cb4d3 100644 --- a/test/_test-users-create.js +++ b/test/test-users-create.js @@ -11,7 +11,8 @@ const app = require('../server'); const cleanup = require('./helper').cleanup; const User = mongoose.model('User'); -test.beforeEach(cleanup); +test.before(cleanup); +test.after(cleanup); test('no email - should respond with errors', t => { request(app) @@ -68,5 +69,3 @@ test('valid signup - should redirect to /', t => { t.end(); }); }); - -test.afterEach(cleanup);