@@ -150,82 +150,111 @@ test.describe('severity-1 #smoke', () => {
150150 //Verify error message
151151 await expect ( page . getByText ( 'Unverified user or session' ) ) . toBeVisible ( ) ;
152152 } ) ;
153- } ) ;
154153
155- test . describe ( 'oauth prompt none with emails' , ( ) => {
156- test ( 'succeeds if login_hint same as logged in user' , async ( {
157- page,
158- target,
159- pages : { relier, settings, signin } ,
160- testAccountTracker,
161- } ) => {
162- const { email } = await signInAccount (
163- target ,
154+ test . describe ( 'with emails' , ( ) => {
155+ test ( 'succeeds if login_hint same as logged in user' , async ( {
164156 page,
165- settings ,
166- signin ,
167- testAccountTracker
168- ) ;
157+ target,
158+ pages : { relier, settings, signin } ,
159+ testAccountTracker,
160+ } ) => {
161+ const { email } = await signInAccount (
162+ target ,
163+ page ,
164+ settings ,
165+ signin ,
166+ testAccountTracker
167+ ) ;
168+
169+ const query = new URLSearchParams ( {
170+ login_hint : email ,
171+ return_on_error : 'false' ,
172+ } ) ;
173+ await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
174+ await relier . signInPromptNone ( ) ;
175+
176+ //Verify logged in to relier
177+ expect ( await relier . isLoggedIn ( ) ) . toBe ( true ) ;
178+ } ) ;
169179
170- const query = new URLSearchParams ( {
171- login_hint : email ,
172- return_on_error : 'false' ,
180+ test ( 'succeeds if no login_hint is provided' , async ( {
181+ page,
182+ target,
183+ pages : { relier, settings, signin } ,
184+ testAccountTracker,
185+ } ) => {
186+ await signInAccount ( target , page , settings , signin , testAccountTracker ) ;
187+
188+ const query = new URLSearchParams ( {
189+ return_on_error : 'false' ,
190+ } ) ;
191+ await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
192+ await relier . signInPromptNone ( ) ;
193+
194+ //Verify logged in to relier
195+ expect ( await relier . isLoggedIn ( ) ) . toBe ( true ) ;
173196 } ) ;
174- await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
175- await relier . signInPromptNone ( ) ;
176197
177- //Verify logged in to relier
178- expect ( await relier . isLoggedIn ( ) ) . toBe ( true ) ;
198+ test ( 'fails if login_hint is different to logged in user' , async ( {
199+ page,
200+ target,
201+ pages : { relier, settings, signin } ,
202+ testAccountTracker,
203+ } ) => {
204+ const loginHintAccount = testAccountTracker . generateAccountDetails ( ) ;
205+ await signInAccount ( target , page , settings , signin , testAccountTracker ) ;
206+
207+ const query = new URLSearchParams ( {
208+ login_hint : loginHintAccount . email ,
209+ return_on_error : 'false' ,
210+ } ) ;
211+ await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
212+ await relier . signInPromptNone ( ) ;
213+
214+ //Verify error message
215+ await expect (
216+ page . getByText ( 'A different user is signed in' )
217+ ) . toBeVisible ( ) ;
218+ } ) ;
179219 } ) ;
180220
181- test ( 'succeeds if no login_hint is provided ' , async ( {
221+ test ( 'redirects if return_on_error=true and not signed in ' , async ( {
182222 page,
183223 target,
184224 pages : { relier, settings, signin } ,
185225 testAccountTracker,
186226 } ) => {
187- await signInAccount ( target , page , settings , signin , testAccountTracker ) ;
188-
189- const query = new URLSearchParams ( {
190- return_on_error : 'false' ,
191- } ) ;
192- await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
193- await relier . signInPromptNone ( ) ;
194-
195- //Verify logged in to relier
196- expect ( await relier . isLoggedIn ( ) ) . toBe ( true ) ;
227+ {
228+ const { email } = await signInAccount (
229+ target ,
230+ page ,
231+ settings ,
232+ signin ,
233+ testAccountTracker
234+ ) ;
235+
236+ await settings . signOut ( ) ;
237+
238+ const query = new URLSearchParams ( {
239+ login_hint : email ,
240+ return_on_error : 'true' ,
241+ } ) ;
242+ await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
243+ await relier . signInPromptNone ( ) ;
244+
245+ await page . waitForResponse ( / a p i \/ o a u t h \? e r r o r = l o g i n _ r e q u i r e d / ) ;
246+ // RP handled it by taking the user back to sign in
247+ await page . waitForURL ( / o a u t h \/ s i g n i n / ) ;
248+ await expect ( signin . passwordFormHeading ) . toBeVisible ( ) ;
249+ }
197250 } ) ;
198251
199- test ( 'fails if login_hint is different to logged in user ' , async ( {
252+ test ( 'redirect to RP with prompt=none and 2FA setup ' , async ( {
200253 page,
201254 target,
202- pages : { relier, settings, signin } ,
255+ pages : { relier, settings, signin, totp , deleteAccount } ,
203256 testAccountTracker,
204257 } ) => {
205- const loginHintAccount = testAccountTracker . generateAccountDetails ( ) ;
206- await signInAccount ( target , page , settings , signin , testAccountTracker ) ;
207-
208- const query = new URLSearchParams ( {
209- login_hint : loginHintAccount . email ,
210- return_on_error : 'false' ,
211- } ) ;
212- await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
213- await relier . signInPromptNone ( ) ;
214-
215- //Verify error message
216- await expect (
217- page . getByText ( 'A different user is signed in' )
218- ) . toBeVisible ( ) ;
219- } ) ;
220- } ) ;
221-
222- test ( 'redirects if return_on_error=true and not signed in' , async ( {
223- page,
224- target,
225- pages : { relier, settings, signin } ,
226- testAccountTracker,
227- } ) => {
228- {
229258 const { email } = await signInAccount (
230259 target ,
231260 page ,
@@ -234,20 +263,26 @@ test.describe('severity-1 #smoke', () => {
234263 testAccountTracker
235264 ) ;
236265
237- await settings . signOut ( ) ;
266+ await settings . totp . addButton . click ( ) ;
238267
268+ await totp . fillOutTotpForms ( ) ;
269+ await expect ( settings . alertBar ) . toHaveText (
270+ 'Two-step authentication has been enabled'
271+ ) ;
272+
273+ // Keep user signed in with a verified TOTP session
239274 const query = new URLSearchParams ( {
240275 login_hint : email ,
241- return_on_error : 'true' ,
242276 } ) ;
243277 await page . goto ( `${ target . relierUrl } /?${ query . toString ( ) } ` ) ;
244278 await relier . signInPromptNone ( ) ;
245279
246- await page . waitForResponse ( / a p i \/ o a u t h \? e r r o r = l o g i n _ r e q u i r e d / ) ;
247- // RP handled it by taking the user back to sign in
248- await page . waitForURL ( / o a u t h \/ s i g n i n / ) ;
249- await expect ( signin . passwordFormHeading ) . toBeVisible ( ) ;
250- }
280+ //Verify logged in to relier
281+ expect ( await relier . isLoggedIn ( ) ) . toBe ( true ) ;
282+
283+ await settings . goto ( ) ;
284+ await settings . disconnectTotp ( ) ; // Required before teardown
285+ } ) ;
251286 } ) ;
252287} ) ;
253288
0 commit comments