1- /* eslint-disable @typescript-eslint/no-namespace */
2- /* eslint-disable @typescript-eslint/consistent-type-definitions */
3-
41import type { LoginCredentials } from '@opendatacapture/schemas/auth' ;
5- import type { InitAppOptions } from '@opendatacapture/schemas/setup' ;
62import { expect , test } from '@playwright/test' ;
73
8- const initOptions = {
9- admin : {
10- firstName : 'Jane' ,
11- lastName : 'Doe' ,
12- password : 'DataCapture2025' ,
13- username : 'admin'
14- } ,
15- dummySubjectCount : 10 ,
16- enableExperimentalFeatures : false ,
17- initDemo : true ,
18- recordsPerSubject : 10
19- } satisfies InitAppOptions ;
20-
21- declare global {
22- namespace NodeJS {
23- interface ProcessEnv {
24- ADMIN_ACCESS_TOKEN : string ;
25- ADMIN_PASSWORD : string ;
26- ADMIN_USERNAME : string ;
27- GLOBAL_SETUP_COMPLETE ?: '1' ;
28- }
29- }
30- }
4+ import { initAppOptions } from '../helpers/data' ;
315
326test . skip ( ( ) => process . env . GLOBAL_SETUP_COMPLETE === '1' ) ;
337
@@ -42,14 +16,14 @@ test.describe.serial(() => {
4216 await page . goto ( '/setup' ) ;
4317 await expect ( page ) . toHaveURL ( '/setup' ) ;
4418 const setupForm = page . locator ( 'form[data-cy="setup-form"]' ) ;
45- await setupForm . locator ( 'input[name="firstName"]' ) . fill ( initOptions . admin . firstName ) ;
46- await setupForm . locator ( 'input[name="lastName"]' ) . fill ( initOptions . admin . lastName ) ;
47- await setupForm . locator ( 'input[name="username"]' ) . fill ( initOptions . admin . username ) ;
48- await setupForm . locator ( 'input[name="password"]' ) . fill ( initOptions . admin . password ) ;
49- await setupForm . locator ( 'input[name="confirmPassword"]' ) . fill ( initOptions . admin . password ) ;
19+ await setupForm . locator ( 'input[name="firstName"]' ) . fill ( initAppOptions . admin . firstName ) ;
20+ await setupForm . locator ( 'input[name="lastName"]' ) . fill ( initAppOptions . admin . lastName ) ;
21+ await setupForm . locator ( 'input[name="username"]' ) . fill ( initAppOptions . admin . username ) ;
22+ await setupForm . locator ( 'input[name="password"]' ) . fill ( initAppOptions . admin . password ) ;
23+ await setupForm . locator ( 'input[name="confirmPassword"]' ) . fill ( initAppOptions . admin . password ) ;
5024 await setupForm . locator ( '#initDemo-true' ) . click ( ) ;
51- await setupForm . locator ( 'input[name="dummySubjectCount"]' ) . fill ( initOptions . dummySubjectCount . toString ( ) ) ;
52- await setupForm . locator ( 'input[name="recordsPerSubject"]' ) . fill ( initOptions . recordsPerSubject . toString ( ) ) ;
25+ await setupForm . locator ( 'input[name="dummySubjectCount"]' ) . fill ( initAppOptions . dummySubjectCount . toString ( ) ) ;
26+ await setupForm . locator ( 'input[name="recordsPerSubject"]' ) . fill ( initAppOptions . recordsPerSubject . toString ( ) ) ;
5327 await setupForm . getByLabel ( 'Submit' ) . click ( ) ;
5428 await expect ( page ) . toHaveURL ( '/dashboard' ) ;
5529 } ) ;
@@ -61,7 +35,7 @@ test.describe.serial(() => {
6135 } ) ;
6236 test . describe . serial ( 'auth' , ( ) => {
6337 test ( 'login' , async ( { request } ) => {
64- const { password, username } = initOptions . admin ;
38+ const { password, username } = initAppOptions . admin ;
6539 const response = await request . post ( '/api/v1/auth/login' , {
6640 data : { password, username } satisfies LoginCredentials
6741 } ) ;
0 commit comments