@@ -11,6 +11,7 @@ import {
1111 unlinkGoogle
1212} from '../authManagement' ;
1313import { saveUser , generateToken , userResponse } from '../helpers' ;
14+ import { createMockUser } from '../__testUtils__' ;
1415
1516import { mailerService } from '../../../utils/mail' ;
1617import { UserDocument } from '../../../types' ;
@@ -68,11 +69,11 @@ describe('user.controller > auth management', () => {
6869 describe ( 'if the user is found' , ( ) => {
6970 beforeEach ( ( ) => {
7071 mockToken = 'mock-token' ;
71- saveMock = jest . fn ( ) . mockResolvedValue ( { } ) ;
72- mockUser = {
72+ saveMock = jest . fn ( ) . mockResolvedValue ( null ) ;
73+ mockUser = createMockUser ( {
7374 email : 'test@example.com' ,
7475 save : saveMock
75- } ;
76+ } ) ;
7677
7778 ( generateToken as jest . Mock ) . mockResolvedValue ( mockToken ) ;
7879 User . findByEmail = jest . fn ( ) . mockResolvedValue ( mockUser ) ;
@@ -113,10 +114,10 @@ describe('user.controller > auth management', () => {
113114 beforeEach ( ( ) => {
114115 mockToken = 'mock-token' ;
115116 saveMock = jest . fn ( ) . mockResolvedValue ( { } ) ;
116- mockUser = {
117+ mockUser = createMockUser ( {
117118 email : 'test@example.com' ,
118119 save : saveMock
119- } ;
120+ } ) ;
120121
121122 ( generateToken as jest . Mock ) . mockResolvedValue ( mockToken ) ;
122123 User . findByEmail = jest . fn ( ) . mockResolvedValue ( null ) ;
@@ -142,10 +143,10 @@ describe('user.controller > auth management', () => {
142143 it ( 'returns unsuccessful for all other errors' , async ( ) => {
143144 mockToken = 'mock-token' ;
144145 saveMock = jest . fn ( ) . mockResolvedValue ( { } ) ;
145- mockUser = {
146+ mockUser = createMockUser ( {
146147 email : 'test@example.com' ,
147148 save : saveMock
148- } ;
149+ } ) ;
149150
150151 ( generateToken as jest . Mock ) . mockRejectedValue (
151152 new Error ( 'network error' )
@@ -202,11 +203,12 @@ describe('user.controller > auth management', () => {
202203
203204 describe ( 'and when there is a user with valid token' , ( ) => {
204205 beforeEach ( async ( ) => {
205- const fakeUser = {
206+ const fakeUser = createMockUser ( {
206207 email : 'test@example.com' ,
207208 resetPasswordToken : 'valid-token' ,
208209 resetPasswordExpires : fixedTime + 10000 // still valid
209- } ;
210+ } ) ;
211+
210212 User . findOne = jest . fn ( ) . mockReturnValue ( {
211213 exec : jest . fn ( ) . mockResolvedValue ( fakeUser )
212214 } ) ;
@@ -257,13 +259,14 @@ describe('user.controller > auth management', () => {
257259 } ) ;
258260
259261 describe ( 'and when there is a user with valid token' , ( ) => {
260- const fakeUser = {
262+ const fakeUser = createMockUser ( {
261263 email : 'test@example.com' ,
262264 password : 'oldpassword' ,
263265 resetPasswordToken : 'valid-token' ,
264266 resetPasswordExpires : fixedTime + 10000 , // still valid
265267 save : jest . fn ( )
266- } ;
268+ } ) ;
269+
267270 beforeEach ( async ( ) => {
268271 User . findOne = jest . fn ( ) . mockReturnValue ( {
269272 exec : jest . fn ( ) . mockResolvedValue ( fakeUser )
@@ -320,11 +323,11 @@ describe('user.controller > auth management', () => {
320323
321324 // the below tests match the current logic, but logic can be improved
322325 describe ( 'if the user is found' , ( ) => {
323- const startingUser = {
326+ const startingUser = createMockUser ( {
324327 username : 'oldusername' ,
325328 email : 'old@email.com' ,
326329 id : 'valid-id'
327- } ;
330+ } ) ;
328331
329332 beforeEach ( ( ) => {
330333 User . findById = jest . fn ( ) . mockResolvedValue ( startingUser ) ;
@@ -399,13 +402,10 @@ describe('user.controller > auth management', () => {
399402 } ) ;
400403 } ) ;
401404 describe ( 'and when there is a user in the request' , ( ) => {
402- const user = {
403- github : { id : '123' , username : 'testuser' } ,
404- tokens : [
405- { kind : 'github' , accessToken : 'abc' } ,
406- { kind : 'google' , accessToken : 'xyz' }
407- ]
408- } ;
405+ const user = createMockUser ( {
406+ github : 'testuser' ,
407+ tokens : [ { kind : 'github' } , { kind : 'google' } ]
408+ } ) ;
409409
410410 beforeEach ( async ( ) => {
411411 request . user = user ;
@@ -415,7 +415,7 @@ describe('user.controller > auth management', () => {
415415 expect ( user . github ) . toBeUndefined ( ) ;
416416 } ) ;
417417 it ( 'filters out the github token' , ( ) => {
418- expect ( user . tokens ) . toEqual ( [ { kind : 'google' , accessToken : 'xyz' } ] ) ;
418+ expect ( user . tokens ) . toEqual ( [ { kind : 'google' } ] ) ;
419419 } ) ;
420420 it ( 'does calls saveUser' , ( ) => {
421421 expect ( saveUser ) . toHaveBeenCalledWith ( response , user ) ;
@@ -440,13 +440,10 @@ describe('user.controller > auth management', () => {
440440 } ) ;
441441 } ) ;
442442 describe ( 'and when there is a user in the request' , ( ) => {
443- const user = {
444- google : { id : '123' , username : 'testuser' } ,
445- tokens : [
446- { kind : 'github' , accessToken : 'abc' } ,
447- { kind : 'google' , accessToken : 'xyz' }
448- ]
449- } ;
443+ const user = createMockUser ( {
444+ google : 'testuser' ,
445+ tokens : [ { kind : 'github' } , { kind : 'google' } ]
446+ } ) ;
450447
451448 beforeEach ( async ( ) => {
452449 request . user = user ;
@@ -456,7 +453,7 @@ describe('user.controller > auth management', () => {
456453 expect ( user . google ) . toBeUndefined ( ) ;
457454 } ) ;
458455 it ( 'filters out the google token' , ( ) => {
459- expect ( user . tokens ) . toEqual ( [ { kind : 'github' , accessToken : 'abc' } ] ) ;
456+ expect ( user . tokens ) . toEqual ( [ { kind : 'github' } ] ) ;
460457 } ) ;
461458 it ( 'does calls saveUser' , ( ) => {
462459 expect ( saveUser ) . toHaveBeenCalledWith ( response , user ) ;
0 commit comments