Advertisement
Guest User

Untitled

a guest
Apr 12th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.41 KB | None | 0 0
  1. var AccountController = require('../controllers/account.js'),
  2. mongoose = require('mongoose'),
  3. should = require('should'),
  4. uuid = require('node-uuid'),
  5. crypto = require('crypto'),
  6. User = require('../models/user.js'),
  7. UserMock = require('./user-mock.js'),
  8. MailerMock = require('./mailer-mock.js'),
  9. ApiMessages = require('../models/api-messages.js');
  10. var session = {};
  11.  
  12.  
  13. describe('AccountController', function() {
  14. var controller,
  15. seedUsersCount = 10,
  16. testUser,
  17. userModelMock,
  18. mailMock;
  19. });
  20.  
  21. beforeEach(function(done) {
  22. userModelMock = new UserMock();
  23. mailerMock = new MailerMock();
  24. controller = new AccountController(userModelMock, session, mailerMock);
  25. done();
  26. });
  27.  
  28.  
  29. afterEach(function(done) {
  30. userModelMock.setError(false);
  31. done();
  32. });
  33.  
  34. it('Returns db error', function(done) {
  35.  
  36. userModelMock.setError(true);
  37. userModelMock.seedUsers();
  38. var testUser = userModelMock.getTestUser(),
  39. testUserPassword = 'Password0';
  40.  
  41. controller.logon(testUser.email, testUserPassword, function(err, apiResponse) {
  42.  
  43. should(apiResponse.success).equal(false);
  44. should(apiResponse.extras.msg).equal(ApiMessages.DB_ERROR);
  45. done();
  46. });
  47. });
  48.  
  49. it('Creates user session', function(done) {
  50.  
  51. userModelMock.seedUsers();
  52. var testUser = userModelMock.getTestUser(),
  53. testUserPassword = 'Password0';
  54.  
  55. controller.logon(testUser.email, testUserPassword, function(err, apiResponse) {
  56.  
  57. if (err) return done(err);
  58. should(apiResponse.success).equal(true);
  59. should.exist(apiResponse.extras.userProfileModel);
  60. should.exist(controller.getSession().userProfileModel);
  61. should(apiResponse.extras.userProfileModel)
  62. .equal(controller.getSession().userProfileModel);
  63. done();
  64. });
  65. });
  66.  
  67. it('Returns "Email not found"', function(done) {
  68.  
  69. userModelMock.seedUsers();
  70. var testUser = userModelMock.getTestUser(),
  71. testUserPassword = 'Password0',
  72. nonExistentEmailAddress = 'test';
  73.  
  74. controller.logon(nonExistentEmailAddress, testUserPassword, function(err, apiResponse) {
  75.  
  76. if (err) return done(err);
  77. should(apiResponse.success).equal(false);
  78. should(apiResponse.extras.msg)
  79. .equal(ApiMessages.EMAIL_NOT_FOUND);
  80. done();
  81. });
  82. });
  83.  
  84. it('Returns "Invalid password"', function(done) {
  85.  
  86. userModelMock.seedUsers();
  87. var testUser = userModelMock.getTestUser(),
  88. invalidPassword = 'Password';
  89.  
  90. controller.logon(testUser.email, invalidPassword, function(err, apiResponse) {
  91.  
  92. if (err) return done(err);
  93. should(apiResponse.success).equal(false);
  94. should(apiResponse.extras.msg)
  95. .equal(ApiMessages.INVALID_PWD);
  96. done();
  97. });
  98. });
  99.  
  100. describe('#logoff', function() {
  101. it('Destroys user session', function(done) {
  102. controller.logoff();
  103. should.not.exist(controller.getSession().userProfileModel);
  104. done();
  105. });
  106. });
  107.  
  108. describe('#register', function() {
  109.  
  110. it('Returns db error', function(done) {
  111.  
  112. userModelMock.setError(true);
  113. userModelMock.seedUsers();
  114. var testUser = userModelMock.getTestUser();
  115. controller.register(testUser, function(err, apiResponse) {
  116.  
  117. should(apiResponse.success).equal(false);
  118. should(apiResponse.extras.msg)
  119. .equal(ApiMessages.DB_ERROR);
  120. done();
  121. });
  122. });
  123. });
  124.  
  125. it('Returns "Email already exists"', function(done) {
  126.  
  127. userModelMock.seedUsers();
  128. var testUser = userModelMock.getTestUser();
  129. controller.register(testUser, function(err, apiResponse) {
  130.  
  131. should(apiResponse.success).equal(false);
  132. should(apiResponse.extras.msg)
  133. .equal(ApiMessages.EMAIL_ALREADY_EXISTS);
  134. done();
  135. });
  136. });
  137.  
  138. it('Returns "Could not create user"', function(done) {
  139.  
  140. var testUser = new UserMock();
  141. testUser.setNumberAffected(0);
  142.  
  143. controller.register(testUser, function(err, apiResponse) {
  144.  
  145. if (err) return done(err);
  146. should(apiResponse.success).equal(false);
  147. should(apiResponse.extras.msg)
  148. .equal(ApiMessages.COULD_NOT_CREATE_USER);
  149. done();
  150. });
  151. });
  152.  
  153. it('Registers a user', function(done) {
  154.  
  155. var testUser = new UserMock();
  156. testUser.setNumberAffected(1);
  157.  
  158. controller.register(testUser, function(err, apiResponse) {
  159.  
  160. if (err) return done(err);
  161. should(apiResponse.success).equal(true);
  162. done();
  163. });
  164. });
  165.  
  166. describe('#resetPassword', function() {
  167.  
  168. it('Returns db error', function(done) {
  169.  
  170. userModelMock.setError(true);
  171. userModelMock.seedUsers();
  172. var testUser = userModelMock.getTestUser();
  173. controller.resetPassword(testUser.email, function(err, apiResponse) {
  174.  
  175. should(apiResponse.success).equal(false);
  176. should(apiResponse.extras.msg)
  177. .equal(ApiMessages.DB_ERROR);
  178. done();
  179. });
  180. });
  181. });
  182.  
  183. it('Sets "passwordResetHash" session', function(done) {
  184.  
  185. userModelMock.seedUsers();
  186. var testUser = userModelMock.getTestUser();
  187.  
  188. controller.resetPassword(testUser.email, function(err, apiResponse) {
  189.  
  190. if (err) return done(err);
  191. should(apiResponse.success).equal(true);
  192. should.exist(controller.getSession().passwordResetHash);
  193. should.exist(apiResponse.extras.passwordResetHash);
  194. should(controller.getSession()
  195. .emailWhoRequestedPasswordReset).equal(testUser.email);
  196. should(controller.getSession()
  197. .passwordResetHash).equal(apiResponse.extras.passwordResetHash);
  198. done();
  199. })
  200. });
  201.  
  202. it('Returns "Email not found"', function(done) {
  203.  
  204. userModelMock.seedUsers();
  205. var testUser = userModelMock.getTestUser(),
  206. nonExistentEmailAddress = 'dummy@email.com';
  207.  
  208. controller.resetPassword(nonExistentEmailAddress, function(err, apiResponse) {
  209.  
  210. if (err) return done(err);
  211. should(apiResponse.success).equal(false);
  212. should(apiResponse.extras.msg)
  213. .equal(ApiMessages.EMAIL_NOT_FOUND);
  214. done();
  215. })
  216. });
  217.  
  218. 1) Returns "Email not found":
  219.  
  220. AssertionError: expected true to be false
  221. + expected - actual
  222.  
  223. -true
  224. +false
  225.  
  226. at Assertion.fail (D:PhoneGap_Projectsloginwwwservernode_modulesshouldlibassertion.js:92:17)
  227. at Assertion.Object.defineProperty.value (D:PhoneGap_Projectsloginwwwservernode_modulesshouldlibassertion.js:164:1
  228. at D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:211:37
  229. at D:PhoneGap_Projectsloginwwwservercontrollersaccount.js:186:16
  230. at UserMock.findOne (D:PhoneGap_Projectsloginwwwservertestuser-mock.js:65:12)
  231. at AccountController.resetPassword (D:PhoneGap_Projectsloginwwwservercontrollersaccount.js:166:18)
  232. at Context.<anonymous> (D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:208:16)
  233. at callFnAsync (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:338:8)
  234. at Test.Runnable.run (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:290:7)
  235. at Runner.runTest (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:422:10)
  236. at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:533:12
  237. at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:342:14)
  238. at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:352:7
  239. at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:284:14)
  240. at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:315:7
  241. at done (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:276:5)
  242. at C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:349:7
  243. at Context.<anonymous> (D:PhoneGap_Projectsloginwwwservertestaccount-controller-test.js:25:5)
  244. at callFnAsync (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:338:8)
  245. at Hook.Runnable.run (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunnable.js:290:7)
  246. at next (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:298:10)
  247. at Immediate._onImmediate (C:UsersAjay Kulkarni-enEXLAppDataRoamingnpmnode_modulesmochalibrunner.js:320:5)
  248.  
  249. if (err) return done(err);
  250. should(apiResponse.success).equal(false);
  251. should(apiResponse.extras.msg)
  252. .equal(ApiMessages.EMAIL_NOT_FOUND);
  253. done();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement