Odoo18-Base/addons/point_of_sale/static/tests/tours/Chrome.tour.js
2025-03-10 10:52:11 +07:00

137 lines
5.6 KiB
JavaScript

/** @odoo-module */
import * as ProductScreen from "@point_of_sale/../tests/tours/helpers/ProductScreenTourMethods";
import * as ReceiptScreen from "@point_of_sale/../tests/tours/helpers/ReceiptScreenTourMethods";
import * as PaymentScreen from "@point_of_sale/../tests/tours/helpers/PaymentScreenTourMethods";
import * as TicketScreen from "@point_of_sale/../tests/tours/helpers/TicketScreenTourMethods";
import * as Chrome from "@point_of_sale/../tests/tours/helpers/ChromeTourMethods";
import * as Utils from "@point_of_sale/../tests/tours/helpers/utils";
import { registry } from "@web/core/registry";
registry.category("web_tour.tours").add("ChromeTour", {
test: true,
url: "/pos/ui",
steps: () =>
[
ProductScreen.confirmOpeningPopup(),
Chrome.clickMenuButton(),
Chrome.isCashMoveButtonShown(),
Chrome.clickMenuButton(),
// Order 1 is at Product Screen
ProductScreen.clickHomeCategory(),
ProductScreen.addOrderline("Desk Pad", "1", "2", "2.0"),
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.checkStatus("-0001", "Ongoing"),
// Order 2 is at Payment Screen
TicketScreen.clickNewTicket(),
ProductScreen.addOrderline("Monitor Stand", "3", "4", "12.0"),
ProductScreen.clickPayButton(),
PaymentScreen.isShown(),
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.checkStatus("-0002", "Payment"),
// Order 3 is at Receipt Screen
TicketScreen.clickNewTicket(),
ProductScreen.addOrderline("Whiteboard Pen", "5", "6", "30.0"),
ProductScreen.clickPayButton(),
PaymentScreen.clickPaymentMethod("Bank"),
PaymentScreen.remainingIs("0.0"),
PaymentScreen.validateButtonIsHighlighted(true),
PaymentScreen.clickValidate(),
ReceiptScreen.isShown(),
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.checkStatus("-0003", "Receipt"),
// Select order 1, should be at Product Screen
TicketScreen.selectOrder("-0001"),
TicketScreen.loadSelectedOrder(),
ProductScreen.productIsDisplayed("Desk Pad"),
ProductScreen.selectedOrderlineHas("Desk Pad", "1.0", "2.0"),
// Select order 2, should be at Payment Screen
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.selectOrder("-0002"),
TicketScreen.loadSelectedOrder(),
PaymentScreen.emptyPaymentlines("12.0"),
PaymentScreen.validateButtonIsHighlighted(false),
// Select order 3, should be at Receipt Screen
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.selectOrder("-0003"),
TicketScreen.loadSelectedOrder(),
ReceiptScreen.totalAmountContains("30.0"),
// Pay order 1, with change
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.selectOrder("-0001"),
TicketScreen.loadSelectedOrder(),
ProductScreen.isShown(),
ProductScreen.clickPayButton(),
PaymentScreen.clickPaymentMethod("Cash"),
PaymentScreen.enterPaymentLineAmount("Cash", "20"),
PaymentScreen.changeIs("18.0"),
PaymentScreen.remainingIs("0.0"),
PaymentScreen.validateButtonIsHighlighted(true),
PaymentScreen.clickValidate(),
ReceiptScreen.totalAmountContains("2.0"),
// Order 1 now should have Receipt status
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.checkStatus("-0001", "Receipt"),
// Select order 3, should still be at Receipt Screen
// and the total amount doesn't change.
TicketScreen.selectOrder("-0003"),
TicketScreen.loadSelectedOrder(),
ReceiptScreen.totalAmountContains("30.0"),
// click next screen on order 3
// then delete the new empty order
ReceiptScreen.clickNextOrder(),
ProductScreen.orderIsEmpty(),
Chrome.clickMenuButton(),
Chrome.clickTicketButton(),
TicketScreen.deleteOrder("-0004"),
TicketScreen.deleteOrder("-0001"),
// After deleting order 1 above, order 2 became
// the 2nd-row order and it has payment status
TicketScreen.nthRowContains(2, "Payment"),
TicketScreen.deleteOrder("-0002"),
Chrome.confirmPopup(),
TicketScreen.clickNewTicket(),
// Invoice an order
ProductScreen.addOrderline("Whiteboard Pen", "5", "6"),
ProductScreen.clickPartnerButton(),
ProductScreen.clickCustomer("Partner Test 1"),
ProductScreen.clickPayButton(),
PaymentScreen.clickPaymentMethod("Bank"),
PaymentScreen.clickInvoiceButton(),
PaymentScreen.clickValidate(),
ReceiptScreen.isShown(),
].flat(),
});
registry.category("web_tour.tours").add("SearchMoreCustomer", {
test: true,
steps: () =>
[
ProductScreen.confirmOpeningPopup(),
ProductScreen.clickPartnerButton(),
ProductScreen.inputCustomerSearchbar("1111"),
Utils.selectButton("Search more"),
ProductScreen.clickCustomer("BPartner"),
ProductScreen.isShown(),
].flat(),
});