@@ -10,7 +10,12 @@ import {
1010	USERNAME_MIN_LENGTH , 
1111}  from  '#app/utils/user-validation' 
1212import  {  readEmail  }  from  '#tests/mocks/utils.ts' 
13- import  {  createUser ,  expect ,  test  as  base  }  from  '#tests/playwright-utils.ts' 
13+ import  { 
14+ 	createUser , 
15+ 	expect , 
16+ 	test  as  base , 
17+ 	type  AppPages , 
18+ }  from  '#tests/playwright-utils.ts' 
1419
1520const  URL_REGEX  =  / (?< url > h t t p s ? : \/ \/ [ ^ \s $ . ? # ] .[ ^ \s ] * ) / 
1621const  CODE_REGEX  =  / H e r e ' s   y o u r   v e r i f i c a t i o n   c o d e :   (?< code > [ \d \w ] + ) / 
@@ -40,10 +45,10 @@ const test = base.extend<{
4045	} , 
4146} ) 
4247
43- test ( 'onboarding with link' ,  async  ( {  page,  getOnboardingData } )  =>  { 
48+ test ( 'onboarding with link' ,  async  ( {  page,  navigate ,   getOnboardingData } )  =>  { 
4449	const  onboardingData  =  getOnboardingData ( ) 
4550
46- 	await  page . goto ( '/' ) 
51+ 	await  navigate ( '/' ) 
4752
4853	await  page . getByRole ( 'link' ,  {  name : / l o g   i n / i} ) . click ( ) 
4954	await  expect ( page ) . toHaveURL ( `/login` ) 
@@ -67,9 +72,9 @@ test('onboarding with link', async ({ page, getOnboardingData }) => {
6772	expect ( email . to ) . toBe ( onboardingData . email . toLowerCase ( ) ) 
6873	expect ( email . from ) . toBe ( '[email protected] ' )  6974	expect ( email . subject ) . toMatch ( / w e l c o m e / i) 
70- 	const  onboardingUrl  =  extractUrl ( email . text ) 
75+ 	const  onboardingUrl  =  extractUrl ( email . text )   as   AppPages 
7176	invariant ( onboardingUrl ,  'Onboarding URL not found' ) 
72- 	await  page . goto ( onboardingUrl ) 
77+ 	await  navigate ( onboardingUrl ) 
7378
7479	await  expect ( page ) . toHaveURL ( / \/ v e r i f y / ) 
7580
@@ -109,10 +114,14 @@ test('onboarding with link', async ({ page, getOnboardingData }) => {
109114	await  expect ( page ) . toHaveURL ( `/` ) 
110115} ) 
111116
112- test ( 'onboarding with a short code' ,  async  ( {  page,  getOnboardingData } )  =>  { 
117+ test ( 'onboarding with a short code' ,  async  ( { 
118+ 	page, 
119+ 	navigate, 
120+ 	getOnboardingData, 
121+ } )  =>  { 
113122	const  onboardingData  =  getOnboardingData ( ) 
114123
115- 	await  page . goto ( '/signup' ) 
124+ 	await  navigate ( '/signup' ) 
116125
117126	const  emailTextbox  =  page . getByRole ( 'textbox' ,  {  name : / e m a i l / i} ) 
118127	await  emailTextbox . click ( ) 
@@ -137,6 +146,7 @@ test('onboarding with a short code', async ({ page, getOnboardingData }) => {
137146
138147test ( 'completes onboarding after GitHub OAuth given valid user details' ,  async  ( { 
139148	page, 
149+ 	navigate, 
140150	prepareGitHubUser, 
141151} )  =>  { 
142152	const  ghUser  =  await  prepareGitHubUser ( ) 
@@ -148,7 +158,7 @@ test('completes onboarding after GitHub OAuth given valid user details', async (
148158		} ) , 
149159	) . toBeNull ( ) 
150160
151- 	await  page . goto ( '/signup' ) 
161+ 	await  navigate ( '/signup' ) 
152162	await  page . getByRole ( 'button' ,  {  name : / s i g n u p   w i t h   g i t h u b / i} ) . click ( ) 
153163
154164	await  expect ( page ) . toHaveURL ( / \/ o n b o a r d i n g \/ g i t h u b / ) 
@@ -186,6 +196,7 @@ test('completes onboarding after GitHub OAuth given valid user details', async (
186196
187197test ( 'logs user in after GitHub OAuth if they are already registered' ,  async  ( { 
188198	page, 
199+ 	navigate, 
189200	prepareGitHubUser, 
190201} )  =>  { 
191202	const  ghUser  =  await  prepareGitHubUser ( ) 
@@ -214,7 +225,7 @@ test('logs user in after GitHub OAuth if they are already registered', async ({
214225	} ) 
215226	expect ( connection ) . toBeNull ( ) 
216227
217- 	await  page . goto ( '/signup' ) 
228+ 	await  navigate ( '/signup' ) 
218229	await  page . getByRole ( 'button' ,  {  name : / s i g n u p   w i t h   g i t h u b / i} ) . click ( ) 
219230
220231	await  expect ( page ) . toHaveURL ( `/` ) 
@@ -235,11 +246,12 @@ test('logs user in after GitHub OAuth if they are already registered', async ({
235246
236247test ( 'shows help texts on entering invalid details on onboarding page after GitHub OAuth' ,  async  ( { 
237248	page, 
249+ 	navigate, 
238250	prepareGitHubUser, 
239251} )  =>  { 
240252	const  ghUser  =  await  prepareGitHubUser ( ) 
241253
242- 	await  page . goto ( '/signup' ) 
254+ 	await  navigate ( '/signup' ) 
243255	await  page . getByRole ( 'button' ,  {  name : / s i g n u p   w i t h   g i t h u b / i} ) . click ( ) 
244256
245257	await  expect ( page ) . toHaveURL ( / \/ o n b o a r d i n g \/ g i t h u b / ) 
@@ -322,11 +334,11 @@ test('shows help texts on entering invalid details on onboarding page after GitH
322334	await  expect ( page . getByText ( / t h a n k s   f o r   s i g n i n g   u p / i) ) . toBeVisible ( ) 
323335} ) 
324336
325- test ( 'login as existing user' ,  async  ( {  page,  insertNewUser } )  =>  { 
337+ test ( 'login as existing user' ,  async  ( {  page,  navigate ,   insertNewUser } )  =>  { 
326338	const  password  =  faker . internet . password ( ) 
327339	const  user  =  await  insertNewUser ( {  password } ) 
328340	invariant ( user . name ,  'User name not found' ) 
329- 	await  page . goto ( '/login' ) 
341+ 	await  navigate ( '/login' ) 
330342	await  page . getByRole ( 'textbox' ,  {  name : / u s e r n a m e / i} ) . fill ( user . username ) 
331343	await  page . getByLabel ( / ^ p a s s w o r d $ / i) . fill ( password ) 
332344	await  page . getByRole ( 'button' ,  {  name : / l o g   i n / i} ) . click ( ) 
@@ -335,11 +347,15 @@ test('login as existing user', async ({ page, insertNewUser }) => {
335347	await  expect ( page . getByRole ( 'link' ,  {  name : user . name  } ) ) . toBeVisible ( ) 
336348} ) 
337349
338- test ( 'reset password with a link' ,  async  ( {  page,  insertNewUser } )  =>  { 
350+ test ( 'reset password with a link' ,  async  ( { 
351+ 	page, 
352+ 	navigate, 
353+ 	insertNewUser, 
354+ } )  =>  { 
339355	const  originalPassword  =  faker . internet . password ( ) 
340356	const  user  =  await  insertNewUser ( {  password : originalPassword  } ) 
341357	invariant ( user . name ,  'User name not found' ) 
342- 	await  page . goto ( '/login' ) 
358+ 	await  navigate ( '/login' ) 
343359
344360	await  page . getByRole ( 'link' ,  {  name : / f o r g o t   p a s s w o r d / i} ) . click ( ) 
345361	await  expect ( page ) . toHaveURL ( '/forgot-password' ) 
@@ -356,9 +372,9 @@ test('reset password with a link', async ({ page, insertNewUser }) => {
356372	expect ( email . subject ) . toMatch ( / p a s s w o r d   r e s e t / i) 
357373	expect ( email . to ) . toBe ( user . email . toLowerCase ( ) ) 
358374	expect ( email . from ) . toBe ( '[email protected] ' )  359- 	const  resetPasswordUrl  =  extractUrl ( email . text ) 
375+ 	const  resetPasswordUrl  =  extractUrl ( email . text )   as   AppPages 
360376	invariant ( resetPasswordUrl ,  'Reset password URL not found' ) 
361- 	await  page . goto ( resetPasswordUrl ) 
377+ 	await  navigate ( resetPasswordUrl ) 
362378
363379	await  expect ( page ) . toHaveURL ( / \/ v e r i f y / ) 
364380
@@ -389,9 +405,13 @@ test('reset password with a link', async ({ page, insertNewUser }) => {
389405	await  expect ( page . getByRole ( 'link' ,  {  name : user . name  } ) ) . toBeVisible ( ) 
390406} ) 
391407
392- test ( 'reset password with a short code' ,  async  ( {  page,  insertNewUser } )  =>  { 
408+ test ( 'reset password with a short code' ,  async  ( { 
409+ 	page, 
410+ 	navigate, 
411+ 	insertNewUser, 
412+ } )  =>  { 
393413	const  user  =  await  insertNewUser ( ) 
394- 	await  page . goto ( '/login' ) 
414+ 	await  navigate ( '/login' ) 
395415
396416	await  page . getByRole ( 'link' ,  {  name : / f o r g o t   p a s s w o r d / i} ) . click ( ) 
397417	await  expect ( page ) . toHaveURL ( '/forgot-password' ) 
0 commit comments