Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var AccountController = require('../controllers/account.js'),
- mongoose = require('mongoose'),
- should = require('should'),
- uuid = require('node-uuid'),
- crypto = require('crypto'),
- User = require('../models/user.js'),
- UserMock = require('./user-mock.js'),
- MailerMock = require('./mailer-mock.js'),
- ApiMessages = require('../models/api-messages.js');
- var session = {};
- describe('AccountController', function() {
- var controller,
- seedUsersCount = 10,
- testUser,
- userModelMock,
- mailMock;
- });
- beforeEach(function(done) {
- userModelMock = new UserMock();
- mailerMock = new MailerMock();
- controller = new AccountController(userModelMock, session, mailerMock);
- done();
- });
- afterEach(function(done) {
- userModelMock.setError(false);
- done();
- });
- it('Returns db error', function(done) {
- userModelMock.setError(true);
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser(),
- testUserPassword = 'Password0';
- controller.logon(testUser.email, testUserPassword, function(err, apiResponse) {
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg).equal(ApiMessages.DB_ERROR);
- done();
- });
- });
- it('Creates user session', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser(),
- testUserPassword = 'Password0';
- controller.logon(testUser.email, testUserPassword, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(true);
- should.exist(apiResponse.extras.userProfileModel);
- should.exist(controller.getSession().userProfileModel);
- should(apiResponse.extras.userProfileModel)
- .equal(controller.getSession().userProfileModel);
- done();
- });
- });
- it('Returns "Email not found"', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser(),
- testUserPassword = 'Password0',
- nonExistentEmailAddress = 'test';
- controller.logon(nonExistentEmailAddress, testUserPassword, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.EMAIL_NOT_FOUND);
- done();
- });
- });
- it('Returns "Invalid password"', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser(),
- invalidPassword = 'Password';
- controller.logon(testUser.email, invalidPassword, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.INVALID_PWD);
- done();
- });
- });
- describe('#logoff', function() {
- it('Destroys user session', function(done) {
- controller.logoff();
- should.not.exist(controller.getSession().userProfileModel);
- done();
- });
- });
- describe('#register', function() {
- it('Returns db error', function(done) {
- userModelMock.setError(true);
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser();
- controller.register(testUser, function(err, apiResponse) {
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.DB_ERROR);
- done();
- });
- });
- });
- it('Returns "Email already exists"', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser();
- controller.register(testUser, function(err, apiResponse) {
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.EMAIL_ALREADY_EXISTS);
- done();
- });
- });
- it('Returns "Could not create user"', function(done) {
- var testUser = new UserMock();
- testUser.setNumberAffected(0);
- controller.register(testUser, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.COULD_NOT_CREATE_USER);
- done();
- });
- });
- it('Registers a user', function(done) {
- var testUser = new UserMock();
- testUser.setNumberAffected(1);
- controller.register(testUser, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(true);
- done();
- });
- });
- describe('#resetPassword', function() {
- it('Returns db error', function(done) {
- userModelMock.setError(true);
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser();
- controller.resetPassword(testUser.email, function(err, apiResponse) {
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.DB_ERROR);
- done();
- });
- });
- });
- it('Sets "passwordResetHash" session', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser();
- controller.resetPassword(testUser.email, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(true);
- should.exist(controller.getSession().passwordResetHash);
- should.exist(apiResponse.extras.passwordResetHash);
- should(controller.getSession()
- .emailWhoRequestedPasswordReset).equal(testUser.email);
- should(controller.getSession()
- .passwordResetHash).equal(apiResponse.extras.passwordResetHash);
- done();
- })
- });
- it('Returns "Email not found"', function(done) {
- userModelMock.seedUsers();
- var testUser = userModelMock.getTestUser(),
- nonExistentEmailAddress = 'dummy@email.com';
- controller.resetPassword(nonExistentEmailAddress, function(err, apiResponse) {
- if (err) return done(err);
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.EMAIL_NOT_FOUND);
- done();
- })
- });
- 1) Returns "Email not found":
- AssertionError: expected true to be false
- + expected - actual
- -true
- +false
- at Assertion.fail (D:PhoneGap_Projectsloginwwwservernode_modulesshouldlibassertion.js:92:17)
- at Assertion.Object.defineProperty.value (D:PhoneGap_Projectsloginwwwservernode_modulesshouldlibassertion.js:164:1
- at D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:211:37
- at D:PhoneGap_Projectsloginwwwservercontrollersaccount.js:186:16
- at UserMock.findOne (D:PhoneGap_Projectsloginwwwservertestuser-mock.js:65:12)
- at AccountController.resetPassword (D:PhoneGap_Projectsloginwwwservercontrollersaccount.js:166:18)
- at Context.<anonymous> (D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:208:16)
- at callFnAsync (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:338:8)
- at Test.Runnable.run (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:290:7)
- at Runner.runTest (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:422:10)
- at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:533:12
- at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:342:14)
- at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:352:7
- at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:284:14)
- at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:315:7
- at done (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:276:5)
- at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:349:7
- at Context.<anonymous> (D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:25:5)
- at callFnAsync (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:338:8)
- at Hook.Runnable.run (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:290:7)
- at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:298:10)
- at Immediate._onImmediate (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:320:5)
- if (err) return done(err);
- should(apiResponse.success).equal(false);
- should(apiResponse.extras.msg)
- .equal(ApiMessages.EMAIL_NOT_FOUND);
- done();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement