@@ -110,11 +110,9 @@ describe('passkeys routes', () => {
110110 emailVerified : true ,
111111 verifierSetAt : 1234567890 ,
112112 } ) ,
113- createSessionToken : jest
113+ createPasskeyVerifiedSessionToken : jest
114114 . fn ( )
115115 . mockResolvedValue ( { id : 'new-session-token-id' } ) ,
116- verifyTokensWithMethod : jest . fn ( ) . mockResolvedValue ( undefined ) ,
117- deleteSessionToken : jest . fn ( ) . mockResolvedValue ( undefined ) ,
118116 securityEvent : jest . fn ( ) . mockResolvedValue ( undefined ) ,
119117 } ;
120118
@@ -833,35 +831,22 @@ describe('passkeys routes', () => {
833831 ) ;
834832 } ) ;
835833
836- it ( 'creates a pre- verified session token with correct options' , async ( ) => {
834+ it ( 'creates a verified session token with correct options' , async ( ) => {
837835 await handler . createPasskeySessionToken ( mockAccount , mockRequest as any ) ;
838836
839- expect ( db . createSessionToken ) . toHaveBeenCalledWith (
840- expect . objectContaining ( {
841- uid : UID ,
842- email : TEST_EMAIL ,
843- emailCode : 'emailcode123' ,
844- emailVerified : true ,
845- verifierSetAt : 1234567890 ,
846- mustVerify : false ,
847- tokenVerificationId : null ,
848- uaBrowser : 'Firefox' ,
849- uaBrowserVersion : '124.0' ,
850- uaOS : 'macOS' ,
851- uaOSVersion : '14.0' ,
852- } )
853- ) ;
854- } ) ;
855-
856- // TODO(FXA-13444): once the atomic stored procedure lands, this test
857- // should be updated to assert the single new DB call instead.
858- it ( 'stamps the token with the passkey verification method' , async ( ) => {
859- await handler . createPasskeySessionToken ( mockAccount , mockRequest as any ) ;
860-
861- expect ( db . verifyTokensWithMethod ) . toHaveBeenCalledWith (
862- 'new-session-token-id' ,
863- 'passkey'
864- ) ;
837+ expect ( db . createPasskeyVerifiedSessionToken ) . toHaveBeenCalledWith ( {
838+ uid : UID ,
839+ email : TEST_EMAIL ,
840+ emailCode : 'emailcode123' ,
841+ emailVerified : true ,
842+ verifierSetAt : 1234567890 ,
843+ uaBrowser : 'Firefox' ,
844+ uaBrowserVersion : '124.0' ,
845+ uaOS : 'macOS' ,
846+ uaOSVersion : '14.0' ,
847+ uaDeviceType : null ,
848+ uaFormFactor : null ,
849+ } ) ;
865850 } ) ;
866851
867852 it ( 'returns the created session token and emits success metric' , async ( ) => {
@@ -876,31 +861,13 @@ describe('passkeys routes', () => {
876861 ) ;
877862 } ) ;
878863
879- it ( 'propagates errors from createSessionToken ' , async ( ) => {
864+ it ( 'propagates errors from createPasskeyVerifiedSessionToken ' , async ( ) => {
880865 const dbError = new Error ( 'DB unavailable' ) ;
881- db . createSessionToken . mockRejectedValue ( dbError ) ;
866+ db . createPasskeyVerifiedSessionToken . mockRejectedValue ( dbError ) ;
882867
883868 await expect (
884869 handler . createPasskeySessionToken ( mockAccount , mockRequest as any )
885870 ) . rejects . toThrow ( 'DB unavailable' ) ;
886871 } ) ;
887-
888- // TODO(FXA-13444): remove this test once the atomic stored procedure lands.
889- it ( 'deletes the token, emits failure metric, and rethrows if verifyTokensWithMethod fails' , async ( ) => {
890- const dbError = new Error ( 'DB unavailable' ) ;
891- db . verifyTokensWithMethod . mockRejectedValue ( dbError ) ;
892-
893- await expect (
894- handler . createPasskeySessionToken ( mockAccount , mockRequest as any )
895- ) . rejects . toThrow ( 'DB unavailable' ) ;
896-
897- expect ( db . deleteSessionToken ) . toHaveBeenCalledWith ( {
898- id : 'new-session-token-id' ,
899- uid : UID ,
900- } ) ;
901- expect ( statsd . increment ) . toHaveBeenCalledWith (
902- 'passkeys.createSessionToken.failure'
903- ) ;
904- } ) ;
905872 } ) ;
906873} ) ;
0 commit comments