@@ -81,6 +81,59 @@ describe('Parse.User testing', () => {
8181 }
8282 } ) ;
8383
84+ it ( 'logs username taken with configured log level' , async ( ) => {
85+ await reconfigureServer ( { logLevels : { signupUsernameTaken : 'warn' } } ) ;
86+ const logger = require ( '../lib/logger' ) . default ;
87+ loggerErrorSpy = spyOn ( logger , 'error' ) . and . callThrough ( ) ;
88+ const loggerWarnSpy = spyOn ( logger , 'warn' ) . and . callThrough ( ) ;
89+
90+ const user = new Parse . User ( ) ;
91+ user . setUsername ( 'dupUser' ) ;
92+ user . setPassword ( 'pass' ) ;
93+ await user . signUp ( ) ;
94+
95+ const user2 = new Parse . User ( ) ;
96+ user2 . setUsername ( 'dupUser' ) ;
97+ user2 . setPassword ( 'pass2' ) ;
98+
99+ expect ( loggerWarnSpy ) . not . toHaveBeenCalled ( ) ;
100+
101+ try {
102+ await user2 . signUp ( ) ;
103+ fail ( 'should have thrown' ) ;
104+ } catch ( e ) {
105+ expect ( e . code ) . toBe ( Parse . Error . USERNAME_TAKEN ) ;
106+ }
107+
108+ expect ( loggerWarnSpy ) . toHaveBeenCalledTimes ( 1 ) ;
109+ expect ( loggerErrorSpy . calls . count ( ) ) . toBe ( 0 ) ;
110+ } ) ;
111+
112+ it ( 'can silence username taken log event' , async ( ) => {
113+ await reconfigureServer ( { logLevels : { signupUsernameTaken : 'silent' } } ) ;
114+ const logger = require ( '../lib/logger' ) . default ;
115+ loggerErrorSpy = spyOn ( logger , 'error' ) . and . callThrough ( ) ;
116+ const loggerWarnSpy = spyOn ( logger , 'warn' ) . and . callThrough ( ) ;
117+
118+ const user = new Parse . User ( ) ;
119+ user . setUsername ( 'dupUser' ) ;
120+ user . setPassword ( 'pass' ) ;
121+ await user . signUp ( ) ;
122+
123+ const user2 = new Parse . User ( ) ;
124+ user2 . setUsername ( 'dupUser' ) ;
125+ user2 . setPassword ( 'pass2' ) ;
126+ try {
127+ await user2 . signUp ( ) ;
128+ fail ( 'should have thrown' ) ;
129+ } catch ( e ) {
130+ expect ( e . code ) . toBe ( Parse . Error . USERNAME_TAKEN ) ;
131+ }
132+
133+ expect ( loggerWarnSpy ) . not . toHaveBeenCalled ( ) ;
134+ expect ( loggerErrorSpy . calls . count ( ) ) . toBe ( 0 ) ;
135+ } ) ;
136+
84137 it ( 'user login with context' , async ( ) => {
85138 let hit = 0 ;
86139 const context = { foo : 'bar' } ;
0 commit comments