@@ -6,7 +6,7 @@ export const createCheckoutPageObject = (testArgs: { page: EnhancedPage }) => {
66 const self = {
77 ...common ( testArgs ) ,
88 waitForMounted : ( selector = '.cl-checkout-root' ) => {
9- return page . waitForSelector ( selector , { state : 'attached' } ) ;
9+ return page . waitForSelector ( selector , { state : 'attached' , timeout : 20000 } ) ;
1010 } ,
1111 closeDrawer : ( ) => {
1212 return page . locator ( '.cl-drawerClose' ) . click ( ) ;
@@ -21,6 +21,7 @@ export const createCheckoutPageObject = (testArgs: { page: EnhancedPage }) => {
2121 } ) ;
2222 } ,
2323 fillCard : async ( card : { number : string ; expiration : string ; cvc : string ; country : string ; zip : string } ) => {
24+ await self . waitForStripeElements ( { state : 'visible' } ) ;
2425 const frame = page . frameLocator ( 'iframe[src*="elements-inner-payment"]' ) ;
2526 await frame . getByLabel ( 'Card number' ) . fill ( card . number ) ;
2627 await frame . getByLabel ( 'Expiration date' ) . fill ( card . expiration ) ;
@@ -29,7 +30,19 @@ export const createCheckoutPageObject = (testArgs: { page: EnhancedPage }) => {
2930 await frame . getByLabel ( 'ZIP code' ) . fill ( card . zip ) ;
3031 } ,
3132 waitForStripeElements : async ( { state = 'visible' } : { state ?: 'visible' | 'hidden' } = { } ) => {
32- return page . frameLocator ( 'iframe[src*="elements-inner-payment"]' ) . getByLabel ( 'Card number' ) . waitFor ( { state } ) ;
33+ const iframe = page . locator ( 'iframe[src*="elements-inner-payment"]' ) ;
34+ if ( state === 'visible' ) {
35+ await iframe . waitFor ( { state : 'attached' , timeout : 20000 } ) ;
36+ await page . frameLocator ( 'iframe[src*="elements-inner-payment"]' ) . getByLabel ( 'Card number' ) . waitFor ( {
37+ state : 'visible' ,
38+ timeout : 20000 ,
39+ } ) ;
40+ } else {
41+ await page . frameLocator ( 'iframe[src*="elements-inner-payment"]' ) . getByLabel ( 'Card number' ) . waitFor ( {
42+ state : 'hidden' ,
43+ timeout : 20000 ,
44+ } ) ;
45+ }
3346 } ,
3447 clickPayOrSubscribe : async ( ) => {
3548 await self . root . getByRole ( 'button' , { name : / s u b s c r i b e | p a y \s \$ | s t a r t / i } ) . click ( ) ;
0 commit comments