@@ -6,16 +6,15 @@ import { LoginPage } from '../pages/auth/login.page';
66import { DashboardPage } from '../pages/dashboard.page' ;
77import { SubjectDataTablePage } from '../pages/datahub/subject-data-table.page' ;
88import { SetupPage } from '../pages/setup.page' ;
9+ import { users } from './data' ;
910
10- import type { NavigateVariadicArgs , ProjectMetadata , RouteTo } from './types' ;
11+ import type { ProjectMetadata , RouteTo } from './types' ;
1112
1213type PageModels = typeof pageModels ;
1314
1415type TestArgs = {
15- getPageModel : < TKey extends Extract < keyof PageModels , RouteTo > > (
16- key : TKey ,
17- ...args : NavigateVariadicArgs < TKey >
18- ) => Promise < InstanceType < PageModels [ TKey ] > > ;
16+ getPageModel : < TKey extends Extract < keyof PageModels , RouteTo > > ( key : TKey ) => InstanceType < PageModels [ TKey ] > ;
17+ login : ( ) => Promise < void > ;
1918} ;
2019
2120type WorkerArgs = {
@@ -31,13 +30,10 @@ const pageModels = {
3130
3231export const test = base . extend < TestArgs , WorkerArgs > ( {
3332 getPageModel : ( { page } , use ) => {
34- return use (
35- async < TKey extends Extract < keyof PageModels , RouteTo > > ( key : TKey , ...args : NavigateVariadicArgs < TKey > ) => {
36- const pageModel = new pageModels [ key ] ( page ) as InstanceType < PageModels [ TKey ] > ;
37- await pageModel . goto ( key , ...args ) ;
38- return pageModel ;
39- }
40- ) ;
33+ return use ( < TKey extends Extract < keyof PageModels , RouteTo > > ( key : TKey ) => {
34+ const pageModel = new pageModels [ key ] ( page ) as InstanceType < PageModels [ TKey ] > ;
35+ return pageModel ;
36+ } ) ;
4137 } ,
4238 getProjectMetadata : [
4339 async ( { } , use , workerInfo ) => {
@@ -46,7 +42,17 @@ export const test = base.extend<TestArgs, WorkerArgs>({
4642 } ) ;
4743 } ,
4844 { scope : 'worker' }
49- ]
45+ ] ,
46+ login : ( { getPageModel, getProjectMetadata } , use ) => {
47+ return use ( async ( ) => {
48+ const loginPage = getPageModel ( '/auth/login' ) ;
49+ await loginPage . goto ( '/auth/login' ) ;
50+ const target = getProjectMetadata ( 'browserTarget' ) ;
51+ const credentials = users [ target ] ;
52+ await loginPage . fillLoginForm ( credentials ) ;
53+ await loginPage . expect . toHaveURL ( '/dashboard' ) ;
54+ } ) ;
55+ }
5056} ) ;
5157
5258export { expect } ;
0 commit comments