11import { users } from './helpers/data' ;
22import { expect , test } from './helpers/fixtures' ;
33
4+ import type { ProjectAuth } from './helpers/types' ;
5+
46test . describe ( 'redirects' , ( ) => {
57 test ( 'should redirect to login page from the index page' , async ( { page } ) => {
68 await page . goto ( '/' ) ;
@@ -9,10 +11,19 @@ test.describe('redirects', () => {
911} ) ;
1012
1113test . describe ( 'login page' , ( ) => {
12- test ( 'should allow logging in' , async ( { getPageModel, getProjectMetadata } ) => {
13- const loginPage = await getPageModel ( '/auth/login' ) ;
14+ test ( 'should allow logging in' , async ( { getPageModel, getProjectMetadata, setProjectAuth } ) => {
1415 const credentials = users [ getProjectMetadata ( 'browserTarget' ) ] ;
16+ const loginPage = await getPageModel ( '/auth/login' ) ;
17+ const loginResponsePromise = loginPage . $ref . waitForResponse ( ( response ) => {
18+ return response . url ( ) . endsWith ( '/v1/auth/login' ) && response . status ( ) === 200 ;
19+ } ) ;
20+
1521 await loginPage . fillLoginForm ( credentials ) ;
1622 await loginPage . expect . toHaveURL ( '/dashboard' ) ;
23+
24+ const response = await loginResponsePromise ;
25+ const body = await response . json ( ) ;
26+ expect ( typeof body . accessToken ) . toBe ( 'string' ) ;
27+ setProjectAuth ( { accessToken : body . accessToken as string } satisfies ProjectAuth ) ;
1728 } ) ;
1829} ) ;
0 commit comments