خرید بک لینک

Vote count: 0

I wrote a mocha script for testing my phonegap app. Here is the code:

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('Retus 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) retu 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('Retus "Email not found"', function(done) {

    userModelMock.seedUsers();
    var testUser = userModelMock.getTestUser(),
        testUserPassword = 'Password0',
        nonExistentEmailAddress = 'test';

    controller.logon(nonExistentEmailAddress, testUserPassword, function(err, apiResponse) {

        if (err) retu done(err);
        should(apiResponse.success).equal(false);
        should(apiResponse.extras.msg)
            .equal(ApiMessages.EMAIL_NOT_FOUND);
        done();
    });
});

it('Retus "Invalid password"', function(done) {

    userModelMock.seedUsers();
    var testUser = userModelMock.getTestUser(),
        invalidPassword = 'Password';

    controller.logon(testUser.email, invalidPassword, function(err, apiResponse) {

        if (err) retu 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('Retus 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('Retus "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('Retus "Could not create user"', function(done) {

    var testUser = new UserMock();
    testUser.setNumberAffected(0);

    controller.register(testUser, function(err, apiResponse) {

        if (err) retu 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) retu done(err);
        should(apiResponse.success).equal(true);
        done();
    });
});

describe('#resetPassword', function() {

    it('Retus 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) retu 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('Retus "Email not found"', function(done) {

    userModelMock.seedUsers();
    var testUser = userModelMock.getTestUser(),
        nonExistentEmailAddress = 'dummy@email.com';

    controller.resetPassword(nonExistentEmailAddress, function(err, apiResponse) {

        if (err) retu done(err);
        should(apiResponse.success).equal(false);
        should(apiResponse.extras.msg)
            .equal(ApiMessages.EMAIL_NOT_FOUND);
        done();
    })
});  

I got this error when I ran mocha in terminal:

 1)  Retus "Email not found":

     AssertionError: expected true to be false
     + expected - actual

     -true
     +false

     at Assertion.fail (D:PhoneGap_Projectsloginwwwserveode_modulesshouldlibassertion.js:92:17)
     at Assertion.Object.defineProperty.value (D:PhoneGap_Projectsloginwwwserveode_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 Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:338:8)
     at Test.Ruable.run (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:290:7)
     at Ruer.runTest (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:422:10)
     at C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:533:12
     at next (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:342:14)
     at C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:352:7
     at next (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:284:14)
     at C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:315:7
     at done (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:276:5)
     at C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:349:7
     at Context.<anonymous> (D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:25:5)
     at callFnAsync (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:338:8)
     at Hook.Ruable.run (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruable.js:290:7)
     at next (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:298:10)
     at Immediate._onImmediate (C:UsersAjay Kulkai-enEXLAppDataRoamingnpmnode_modulesmochalibruer.js:320:5)  

That error is happening in the following lines:

if (err) retu done(err);
        should(apiResponse.success).equal(false);
        should(apiResponse.extras.msg)
            .equal(ApiMessages.EMAIL_NOT_FOUND);
        done();  

How can I fix that error?

asked 2 mins ago

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 24 فروردين 1395 ساعت: 18:58

صفحه بندی