OBA Website automated using playwright
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

153 lines
4.6 KiB

const {test, expect} =require('@playwright/test')
import { clear } from 'console';
import { LoginPage } from '../pages/LoginPage';
import { OrderPage } from '../pages/OrderPage';
test('TC-OP-01: Order Button',async ({page})=>{
//Navigate to login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to order page
const order = new OrderPage(page);
await order.clickOrdersButton();
await page.waitForTimeout(5000);
//Assertion
await expect(await page.locator("//a[normalize-space()='Order List']")).toBeVisible();
})
test('Tc-OP-02: Order List Button',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to Order Page
const order = new OrderPage(page);
await order.clickOrdersListButton();
//Assertion
await expect(await page.locator("//select[@id='oba_edit_order_status_filter']")).toBeVisible();
})
test('TC-OP-03: Order Status Dropdown Count',async ({page})=>{
//Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to order page
const order = new OrderPage(page);
await order.clickOrdersListButton();
await page.waitForTimeout(5000);
//Assertion
const options = await page.locator('#oba_edit_order_status_filter option')
await expect(options).toHaveCount(5);
})
test.skip('Order status dropdown menu',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
const order = new OrderPage(page);
await order.clickOrdersListButton();
const value= await page.locator("//select[@id='oba_edit_order_status_filter']").textContent()
console.log(value);
})
test.skip('Order status selected',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
const order = new OrderPage(page);
await order.orderStatusCheck('ORDER_STATUS_REQUESTED');
})
test.skip('Order declined',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_DECLINED', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order requested',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_REQUESTED', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order pending',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_PENDING', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order cancelled',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_CANCELLED', 'Tomato Rice and Chicken Biriyani');
})
test('TC-OP-30,31,32,33,34: Order by ID API',async ({request,page})=>{
const response = await request.get('https://dev.orderbookings.com/api/order/syncOrders?user_id=670766e4272db54e96e423e0&phone=919480111222&lastupdatetime=0&merchantCode=919480707707&role=ROLE_TYPE_MERCHANT')
const res = await response.json();
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
const result = await order.textBoxSearch('ORDER_STATUS_COMPLETE', 'Shubya');
expect.soft(order.orderName).toContain(res.data[0].ordered_by_name);
expect.soft(order.orderEmail).toContain(res.data[0].ordered_by_email);
expect.soft(order.orderPhone).toContain((res.data[0].ordered_by_address.phone).toString());
expect.soft(order.orderCost).toContain((res.data[0].order_cost).toString());
expect.soft(order.orderQty).toContain((res.data[0].ordered_items_qty[0]).toString());
})