Updates PayPal login flow
Adds username input and "next" button handling to the PayPal login flow. This update is necessary to support the new PayPal login screen, which requires entering the username before the password.
This commit is contained in:
parent
5a5be03cc1
commit
aa43e2941a
2 changed files with 12 additions and 2 deletions
|
|
@ -28,6 +28,7 @@ const defaultAfterpayDetails: IPaymentDetails = {
|
||||||
|
|
||||||
const defaultPaypalDetails: IPaymentDetails = {
|
const defaultPaypalDetails: IPaymentDetails = {
|
||||||
paymentType: PaymentType.Paypal,
|
paymentType: PaymentType.Paypal,
|
||||||
|
username: 'itqatest@safelite.com',
|
||||||
password: 'Safelite1'
|
password: 'Safelite1'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@ import { IPaymentDetails } from '@business-logic/types/CustomerDetails';
|
||||||
export class PaypalPage extends BasePage {
|
export class PaypalPage extends BasePage {
|
||||||
readonly page: Page;
|
readonly page: Page;
|
||||||
readonly loginWithPasswordButton: Locator;
|
readonly loginWithPasswordButton: Locator;
|
||||||
|
readonly usernameTextBox: Locator;
|
||||||
|
readonly nextButton: Locator;
|
||||||
|
readonly usePasswordInsteadButton: Locator;
|
||||||
readonly passwordTextBox: Locator;
|
readonly passwordTextBox: Locator;
|
||||||
readonly paypalLoginButton: Locator;
|
readonly paypalLoginButton: Locator;
|
||||||
readonly completePurchaseButton: Locator;
|
readonly completePurchaseButton: Locator;
|
||||||
|
|
@ -12,13 +15,19 @@ export class PaypalPage extends BasePage {
|
||||||
constructor(page: Page) {
|
constructor(page: Page) {
|
||||||
super(page);
|
super(page);
|
||||||
this.page = page;
|
this.page = page;
|
||||||
this.loginWithPasswordButton = page.getByRole('link', { name: 'Log in with a password instead' });
|
this.usernameTextBox = page.getByPlaceholder('Email');
|
||||||
|
this.nextButton = page.getByRole('button', { name: 'Next' });
|
||||||
|
this.loginWithPasswordButton = page.getByRole('button', { name: 'Use Password Instead' });
|
||||||
this.passwordTextBox = page.getByPlaceholder('Password');
|
this.passwordTextBox = page.getByPlaceholder('Password');
|
||||||
this.paypalLoginButton = page.getByRole('button', { name: 'Log In', exact: true });
|
this.paypalLoginButton = page.getByRole('button', { name: 'Log In', exact: true });
|
||||||
this.completePurchaseButton = page.getByTestId('submit-button-initial');
|
this.completePurchaseButton = page.getByRole('button', { name: 'Pay $' });
|
||||||
}
|
}
|
||||||
|
|
||||||
async completePaypalPurchase(paymentDetails: IPaymentDetails){
|
async completePaypalPurchase(paymentDetails: IPaymentDetails){
|
||||||
|
if (!await this.loginWithPasswordButton.isVisible()) {
|
||||||
|
await this.usernameTextBox.fill(paymentDetails.username!);
|
||||||
|
await this.nextButton.click();
|
||||||
|
}
|
||||||
await this.loginWithPasswordButton.click();
|
await this.loginWithPasswordButton.click();
|
||||||
await this.passwordTextBox.fill(paymentDetails.password!);
|
await this.passwordTextBox.fill(paymentDetails.password!);
|
||||||
await this.paypalLoginButton.click();
|
await this.paypalLoginButton.click();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue