@@ -6,15 +6,16 @@ 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' ;
109
11- import type { ProjectMetadata , RouteTo } from './types' ;
10+ import type { NavigateVariadicArgs , ProjectMetadata , RouteTo } from './types' ;
1211
1312type PageModels = typeof pageModels ;
1413
1514type TestArgs = {
16- getPageModel : < TKey extends Extract < keyof PageModels , RouteTo > > ( key : TKey ) => InstanceType < PageModels [ TKey ] > ;
17- login : ( ) => Promise < void > ;
15+ getPageModel : < TKey extends Extract < keyof PageModels , RouteTo > > (
16+ key : TKey ,
17+ ...args : NavigateVariadicArgs < TKey >
18+ ) => Promise < InstanceType < PageModels [ TKey ] > > ;
1819} ;
1920
2021type WorkerArgs = {
@@ -30,10 +31,13 @@ const pageModels = {
3031
3132export const test = base . extend < TestArgs , WorkerArgs > ( {
3233 getPageModel : ( { page } , use ) => {
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- } ) ;
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+ ) ;
3741 } ,
3842 getProjectMetadata : [
3943 async ( { } , use , workerInfo ) => {
@@ -42,17 +46,7 @@ export const test = base.extend<TestArgs, WorkerArgs>({
4246 } ) ;
4347 } ,
4448 { scope : 'worker' }
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- }
49+ ]
5650} ) ;
5751
5852export { expect } ;
0 commit comments