@@ -256,6 +256,49 @@ describe('AuthenticationProviders', function () {
256
256
. catch ( done . fail ) ;
257
257
} ) ;
258
258
259
+ it ( 'should support loginWith with session token and with/without mutated authData' , async ( ) => {
260
+ const fakeAuthProvider = {
261
+ validateAppId : ( ) => Promise . resolve ( ) ,
262
+ validateAuthData : ( ) => Promise . resolve ( ) ,
263
+ } ;
264
+ const payload = { authData : { id : 'user1' , token : 'fakeToken' } } ;
265
+ const payload2 = { authData : { id : 'user1' , token : 'fakeToken2' } } ;
266
+ await reconfigureServer ( { auth : { fakeAuthProvider } } ) ;
267
+ const user = await Parse . User . logInWith ( 'fakeAuthProvider' , payload ) ;
268
+ const user2 = await Parse . User . logInWith ( 'fakeAuthProvider' , payload , {
269
+ sessionToken : user . getSessionToken ( ) ,
270
+ } ) ;
271
+ const user3 = await Parse . User . logInWith ( 'fakeAuthProvider' , payload2 , {
272
+ sessionToken : user2 . getSessionToken ( ) ,
273
+ } ) ;
274
+ expect ( user . id ) . toEqual ( user2 . id ) ;
275
+ expect ( user . id ) . toEqual ( user3 . id ) ;
276
+ } ) ;
277
+
278
+ it ( 'should support sync/async validateAppId' , async ( ) => {
279
+ const syncProvider = {
280
+ validateAppId : ( ) => true ,
281
+ appIds : 'test' ,
282
+ validateAuthData : ( ) => Promise . resolve ( ) ,
283
+ } ;
284
+ const asyncProvider = {
285
+ appIds : 'test' ,
286
+ validateAppId : ( ) => Promise . resolve ( true ) ,
287
+ validateAuthData : ( ) => Promise . resolve ( ) ,
288
+ } ;
289
+ const payload = { authData : { id : 'user1' , token : 'fakeToken' } } ;
290
+ const syncSpy = spyOn ( syncProvider , 'validateAppId' ) ;
291
+ const asyncSpy = spyOn ( asyncProvider , 'validateAppId' ) ;
292
+
293
+ await reconfigureServer ( { auth : { asyncProvider, syncProvider } } ) ;
294
+ const user = await Parse . User . logInWith ( 'asyncProvider' , payload ) ;
295
+ const user2 = await Parse . User . logInWith ( 'syncProvider' , payload ) ;
296
+ expect ( user . getSessionToken ( ) ) . toBeDefined ( ) ;
297
+ expect ( user2 . getSessionToken ( ) ) . toBeDefined ( ) ;
298
+ expect ( syncSpy ) . toHaveBeenCalledTimes ( 1 ) ;
299
+ expect ( asyncSpy ) . toHaveBeenCalledTimes ( 1 ) ;
300
+ } ) ;
301
+
259
302
it ( 'unlink and link with custom provider' , async ( ) => {
260
303
const provider = getMockMyOauthProvider ( ) ;
261
304
Parse . User . _registerAuthenticationProvider ( provider ) ;
@@ -339,10 +382,10 @@ describe('AuthenticationProviders', function () {
339
382
} ) ;
340
383
341
384
validateAuthenticationHandler ( authenticationHandler ) ;
342
- const validator = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
385
+ const { validator } = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
343
386
validateValidator ( validator ) ;
344
387
345
- validator ( validAuthData ) . then (
388
+ validator ( validAuthData , { } , { } ) . then (
346
389
( ) => {
347
390
expect ( authDataSpy ) . toHaveBeenCalled ( ) ;
348
391
// AppIds are not provided in the adapter, should not be called
@@ -362,12 +405,15 @@ describe('AuthenticationProviders', function () {
362
405
} ) ;
363
406
364
407
validateAuthenticationHandler ( authenticationHandler ) ;
365
- const validator = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
408
+ const { validator } = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
366
409
validateValidator ( validator ) ;
367
-
368
- validator ( {
369
- token : 'my-token' ,
370
- } ) . then (
410
+ validator (
411
+ {
412
+ token : 'my-token' ,
413
+ } ,
414
+ { } ,
415
+ { }
416
+ ) . then (
371
417
( ) => {
372
418
done ( ) ;
373
419
} ,
@@ -387,12 +433,16 @@ describe('AuthenticationProviders', function () {
387
433
} ) ;
388
434
389
435
validateAuthenticationHandler ( authenticationHandler ) ;
390
- const validator = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
436
+ const { validator } = authenticationHandler . getValidatorForProvider ( 'customAuthentication' ) ;
391
437
validateValidator ( validator ) ;
392
438
393
- validator ( {
394
- token : 'valid-token' ,
395
- } ) . then (
439
+ validator (
440
+ {
441
+ token : 'valid-token' ,
442
+ } ,
443
+ { } ,
444
+ { }
445
+ ) . then (
396
446
( ) => {
397
447
done ( ) ;
398
448
} ,
@@ -541,6 +591,7 @@ describe('AuthenticationProviders', function () {
541
591
} ) ;
542
592
543
593
it ( 'can depreciate' , async ( ) => {
594
+ await reconfigureServer ( ) ;
544
595
const Deprecator = require ( '../lib/Deprecator/Deprecator' ) ;
545
596
const spy = spyOn ( Deprecator , 'logRuntimeDeprecation' ) . and . callFake ( ( ) => { } ) ;
546
597
const provider = getMockMyOauthProvider ( ) ;
0 commit comments