Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions src/main/java/com/cutanddry/qa/functions/Customer.java
Original file line number Diff line number Diff line change
Expand Up @@ -3492,6 +3492,30 @@ public static double getCurrentOrdersValue() {
return customersPage.getCurrentValue();
}

// DOT-TC-3617: Order Reference Column and ERP Order Badge Methods
public static boolean isOrderReferenceColumnHeaderDisplayed() {
return customersPage.isOrderReferenceColumnHeaderDisplayed();
}

public static boolean isOrderReferenceNumberDisplayed() {
return customersPage.isOrderReferenceNumberDisplayed();
}

public static boolean isFirstOrderReferenceNumberDisplayed() {
return customersPage.isFirstOrderReferenceNumberDisplayed();
}

public static String getFirstOrderReferenceNumber() {
return customersPage.getFirstOrderReferenceNumber();
}

public static boolean isErpOrderBadgeDisplayed() {
return customersPage.isErpOrderBadgeDisplayed();
}

public static boolean isFirstErpOrderBadgeDisplayed() {
return customersPage.isFirstErpOrderBadgeDisplayed();
}

}

Expand Down
35 changes: 34 additions & 1 deletion src/main/java/com/cutanddry/qa/pages/CustomersPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,12 @@ public class CustomersPage extends LoginPage {
String buyOutHardMinValues = "//div[normalize-space()='LABEL'] /following-sibling::div[normalize-space()='VALUE']";
By currentValue = By.xpath("//div[normalize-space()='Current'] /following-sibling::div");


// DOT-TC-3617: Order Reference Column and ERP Order Badge Locators
By lbl_orderReferenceColumnHeader = By.xpath("//span[contains(text(),'Order Reference')]");
By lbl_orderReferenceNumber = By.xpath("//tr[contains(@href,'/ordersView/')]//td//div[contains(text(),'#')]");
By lbl_erpOrderBadge = By.xpath("//tr[contains(@href,'/ordersView/')]//td//span[contains(text(),'ERP Order')]");
By lbl_firstOrderReferenceNumber = By.xpath("(//tr[contains(@href,'/ordersView/')]//td//div[contains(text(),'#')])[1]");
By lbl_firstErpOrderBadge = By.xpath("(//tr[contains(@href,'/ordersView/')]//td//span[contains(text(),'ERP Order')])[1]");



Expand Down Expand Up @@ -5743,4 +5748,32 @@ public double getCurrentValue() {
String rawText = distributorUI.getText(currentValue);
return Double.parseDouble(rawText.replace("$", "").replace(",", "").trim());
}

// DOT-TC-3617: Order Reference Column and ERP Order Badge Methods
public boolean isOrderReferenceColumnHeaderDisplayed() {
distributorUI.waitForVisibility(lbl_orderReferenceColumnHeader);
return distributorUI.isDisplayed(lbl_orderReferenceColumnHeader);
}

public boolean isOrderReferenceNumberDisplayed() {
return distributorUI.isDisplayed(lbl_orderReferenceNumber);
}

public boolean isFirstOrderReferenceNumberDisplayed() {
distributorUI.waitForVisibility(lbl_firstOrderReferenceNumber);
return distributorUI.isDisplayed(lbl_firstOrderReferenceNumber);
}

public String getFirstOrderReferenceNumber() {
distributorUI.waitForVisibility(lbl_firstOrderReferenceNumber);
return distributorUI.getText(lbl_firstOrderReferenceNumber);
}

public boolean isErpOrderBadgeDisplayed() {
return distributorUI.isDisplayed(lbl_erpOrderBadge);
}

public boolean isFirstErpOrderBadgeDisplayed() {
return distributorUI.isDisplayed(lbl_firstErpOrderBadge);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.cutanddry.qa.tests.customer_orders;

import com.cutanddry.qa.base.TestBase;
import com.cutanddry.qa.data.models.User;
import com.cutanddry.qa.data.testdata.PriceData;
import com.cutanddry.qa.functions.Customer;
import com.cutanddry.qa.functions.Dashboard;
import com.cutanddry.qa.functions.Login;
import com.cutanddry.qa.utils.JsonUtil;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;

public class VerifyOrderReferenceColumnDisplayWithErpOrderBadgeTest extends TestBase {
static User user;
static String distributorWagner = PriceData.DISTRIBUTOR_WAGNER;
static String customerCode = "515";

@BeforeMethod
public void setUp() {
initialization();
user = JsonUtil.readUserLogin();
}

@Test(groups = "DOT-TC-3617")
public void verifyOrderReferenceColumnDisplayWithErpOrderBadge() throws InterruptedException {
SoftAssert softAssert = new SoftAssert();

Login.logIntoRestaurant(user.getEmailOrMobile(), user.getPassword());
softAssert.assertTrue(Dashboard.isUserNavigatedToRestaurantDashboard(), "Login failed - Restaurant Dashboard not displayed");

Login.navigateToDistributorPortal(distributorWagner);
softAssert.assertTrue(Dashboard.isUserNavigatedToDashboard(), "Navigation to distributor portal failed");

Dashboard.navigateToCustomers();
softAssert.assertTrue(Customer.isCustomersTextDisplayed(), "Customers section not displayed");

Customer.searchCustomerByCode(customerCode);
softAssert.assertTrue(Customer.isCustomerSearchResultByCodeDisplayed(customerCode), "Customer not found");

String businessName = Customer.getBusinessNameFromCustomers(customerCode);
Customer.SelectCustomer(customerCode);
softAssert.assertTrue(Customer.isCustomerProfileDisplayed(businessName), "Customer profile not displayed");

Customer.clickOnOrdersTab();
softAssert.assertTrue(Customer.isOrdersTabDisplayed(), "Orders tab not displayed");

softAssert.assertTrue(Customer.isOrderReferenceColumnHeaderDisplayed(), "Order Reference column header not displayed");

softAssert.assertTrue(Customer.isFirstOrderReferenceNumberDisplayed(), "Order reference number not displayed");

String orderReferenceNumber = Customer.getFirstOrderReferenceNumber();
softAssert.assertTrue(orderReferenceNumber.startsWith("#"), "Order reference number does not start with # prefix. Actual: " + orderReferenceNumber);

softAssert.assertTrue(Customer.isFirstErpOrderBadgeDisplayed(), "ERP Order badge not displayed for ERP-synced orders");

softAssert.assertAll();
}

@AfterMethod
public void tearDown(ITestResult result) {
takeScreenshotOnFailure(result);
closeAllBrowsers();
}
}