66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
import {test} from "@playwright/test"
|
|
import { v4 as uuidv4 } from "uuid";
|
|
|
|
import {ProductsPage} from "../page-objects/ProductsPage.js"
|
|
import { Navigation } from "../page-objects/Navigation.js"
|
|
import { CheckoutPage } from "../page-objects/CheckoutPage.js"
|
|
import { LoginPage } from "../page-objects/LoginPage.js"
|
|
import { RegisterPage } from "../page-objects/RegisterPage.js"
|
|
import { DeliveryPage } from "../page-objects/DeliveryPage.js"
|
|
import { deliveryDetails } from "../data/deliveryDetails.js";
|
|
import { PaymentPage } from "../page-objects/PaymentPage.js"
|
|
import { paymentDetails } from "../data/paymentDetails.js";
|
|
|
|
|
|
test("New user full end-to-end test journey", async ({page}) => {
|
|
|
|
// init
|
|
const productsPage = new ProductsPage(page)
|
|
const navigation = new Navigation(page)
|
|
const checkoutPage = new CheckoutPage(page)
|
|
const loginPage = new LoginPage(page)
|
|
const registerPage = new RegisterPage(page)
|
|
const deliveryPage = new DeliveryPage(page)
|
|
const paymentPage = new PaymentPage(page)
|
|
|
|
await page.pause()
|
|
|
|
// 1. Visit
|
|
await productsPage.visit()
|
|
await productsPage.sortByCheapest()
|
|
// 2. Add to Basket
|
|
await productsPage.addProductToBasket(0)
|
|
await productsPage.addProductToBasket(1)
|
|
await productsPage.addProductToBasket(2)
|
|
// 3. Navigate to Checkout
|
|
await navigation.goToCheckout()
|
|
|
|
await checkoutPage.removeCheapestProduct()
|
|
await checkoutPage.continueToCheckout()
|
|
// 4. Navigate to Signup
|
|
await loginPage.moveToSignup()
|
|
|
|
const email = uuidv4() + "@gmail.com"
|
|
const password = "secret"
|
|
// 5. Register New User
|
|
await registerPage.signupNewUser(email, password)
|
|
|
|
await deliveryPage.fillDeliveryDetails(deliveryDetails[0])
|
|
await deliveryPage.saveAddress()
|
|
// await deliveryPage.clearDetails()
|
|
// await deliveryPage.fillDetails(deliveryDetails[1])
|
|
// await deliveryPage.saveAddress()
|
|
// await deliveryPage.clearDetails()
|
|
// await deliveryPage.fillDetails(deliveryDetails[2])
|
|
// await deliveryPage.saveAddress()
|
|
|
|
await deliveryPage.continueToPayment()
|
|
|
|
await paymentPage.activateDiscount()
|
|
await paymentPage.fillPaymentDetails(paymentDetails)
|
|
await paymentPage.completePayment()
|
|
|
|
|
|
// Hold
|
|
//await page.pause();
|
|
}) |