11// @ts -check
22
33import { expect , type Locator , type Page } from '@playwright/test' ;
4- import { UIReference , outcomeMarker } from '@config' ;
4+ import { UIReference , outcomeMarker , inputValues } from '@config' ;
5+ import { faker } from '@faker-js/faker'
56
67class NewsletterSubscriptionPage {
78 readonly page : Page ;
@@ -15,16 +16,15 @@ class NewsletterSubscriptionPage {
1516 }
1617
1718 async updateNewsletterSubscription ( ) {
18-
19- if ( await this . newsletterCheckElement . isChecked ( ) ) {
20- // user is already subscribed, test runs unsubscribe
21- var subscriptionUpdatedNotification = outcomeMarker . account . newsletterRemovedNotification ;
2219
20+ let subscriptionUpdatedNotification = outcomeMarker . account . newsletterRemovedNotification ;
21+ let subscribed = false ;
22+
23+ if ( await this . newsletterCheckElement . isChecked ( ) ) {
24+ // user is already subscribed, test runs unsubscribe
2325 await this . newsletterCheckElement . uncheck ( ) ;
2426 await this . saveSubscriptionsButton . click ( ) ;
2527
26- var subscribed = false ;
27-
2828 } else {
2929 // user is not yet subscribed, test runs subscribe
3030 subscriptionUpdatedNotification = outcomeMarker . account . newsletterSavedNotification ;
@@ -38,6 +38,12 @@ class NewsletterSubscriptionPage {
3838 await expect ( this . page . getByText ( subscriptionUpdatedNotification ) ) . toBeVisible ( ) ;
3939 return subscribed ;
4040 }
41+
42+ async footerSubscribeToNewsletter ( ) {
43+ await expect ( this . page . getByRole ( 'textbox' , { name : UIReference . footerPage . newsletterInputElementLabel } ) ) . toBeVisible ( ) ;
44+ await this . page . getByRole ( 'textbox' , { name : UIReference . footerPage . newsletterInputElementLabel } ) . fill ( faker . internet . email ( ) ) ;
45+ await this . page . getByRole ( 'button' , { name : UIReference . footerPage . newsletterSubscribeButtonLabel } ) . click ( ) ;
46+ }
4147}
4248
4349export default NewsletterSubscriptionPage ;
0 commit comments