summaryrefslogtreecommitdiff
path: root/addons/point_of_sale/static/tests/tours/Chrome.tour.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/point_of_sale/static/tests/tours/Chrome.tour.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/point_of_sale/static/tests/tours/Chrome.tour.js')
-rw-r--r--addons/point_of_sale/static/tests/tours/Chrome.tour.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/addons/point_of_sale/static/tests/tours/Chrome.tour.js b/addons/point_of_sale/static/tests/tours/Chrome.tour.js
new file mode 100644
index 00000000..a1c992de
--- /dev/null
+++ b/addons/point_of_sale/static/tests/tours/Chrome.tour.js
@@ -0,0 +1,103 @@
+odoo.define('point_of_sale.tour.Chrome', function (require) {
+ 'use strict';
+
+ const { ProductScreen } = require('point_of_sale.tour.ProductScreenTourMethods');
+ const { ReceiptScreen } = require('point_of_sale.tour.ReceiptScreenTourMethods');
+ const { PaymentScreen } = require('point_of_sale.tour.PaymentScreenTourMethods');
+ const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods');
+ const { Chrome } = require('point_of_sale.tour.ChromeTourMethods');
+ const { getSteps, startSteps } = require('point_of_sale.tour.utils');
+ var Tour = require('web_tour.tour');
+
+ startSteps();
+
+ // Order 1 is at Product Screen
+ ProductScreen.do.clickHomeCategory();
+ ProductScreen.exec.addOrderline('Desk Pad', '1', '2', '2.0');
+ Chrome.do.clickTicketButton();
+ TicketScreen.check.checkStatus('-0001', 'Ongoing');
+
+ // Order 2 is at Payment Screen
+ TicketScreen.do.clickNewTicket();
+ ProductScreen.exec.addOrderline('Monitor Stand', '3', '4', '12.0');
+ ProductScreen.do.clickPayButton();
+ PaymentScreen.check.isShown();
+ Chrome.do.clickTicketButton();
+ TicketScreen.check.checkStatus('-0002', 'Payment');
+
+ // Order 3 is at Receipt Screen
+ TicketScreen.do.clickNewTicket();
+ ProductScreen.exec.addOrderline('Whiteboard Pen', '5', '6', '30.0');
+ ProductScreen.do.clickPayButton();
+ PaymentScreen.do.clickPaymentMethod('Bank');
+ PaymentScreen.check.remainingIs('0.0');
+ PaymentScreen.check.validateButtonIsHighlighted(true);
+ PaymentScreen.do.clickValidate();
+ ReceiptScreen.check.isShown();
+ Chrome.do.clickTicketButton();
+ TicketScreen.check.checkStatus('-0003', 'Receipt');
+
+ // Select order 1, should be at Product Screen
+ TicketScreen.do.selectOrder('-0001');
+ ProductScreen.check.productIsDisplayed('Desk Pad');
+ ProductScreen.check.selectedOrderlineHas('Desk Pad', '1.0', '2.0');
+
+ // Select order 2, should be at Payment Screen
+ Chrome.do.clickTicketButton();
+ TicketScreen.do.selectOrder('-0002');
+ PaymentScreen.check.emptyPaymentlines('12.0');
+ PaymentScreen.check.validateButtonIsHighlighted(false);
+
+ // Select order 3, should be at Receipt Screen
+ Chrome.do.clickTicketButton();
+ TicketScreen.do.selectOrder('-0003');
+ ReceiptScreen.check.totalAmountContains('30.0');
+
+ // Pay order 1, with change
+ Chrome.do.clickTicketButton();
+ TicketScreen.do.selectOrder('-0001');
+ ProductScreen.do.clickPayButton();
+ PaymentScreen.do.clickPaymentMethod('Cash');
+ PaymentScreen.do.pressNumpad('2 0');
+ PaymentScreen.check.remainingIs('0.0');
+ PaymentScreen.check.validateButtonIsHighlighted(true);
+ PaymentScreen.do.clickValidate();
+ ReceiptScreen.check.totalAmountContains('2.0');
+
+ // Order 1 now should have Receipt status
+ Chrome.do.clickTicketButton();
+ TicketScreen.check.checkStatus('-0001', 'Receipt');
+
+ // Select order 3, should still be at Receipt Screen
+ // and the total amount doesn't change.
+ TicketScreen.do.selectOrder('-0003');
+ ReceiptScreen.check.totalAmountContains('30.0');
+
+ // click next screen on order 3
+ // then delete the new empty order
+ ReceiptScreen.do.clickNextOrder();
+ ProductScreen.check.orderIsEmpty();
+ Chrome.do.clickTicketButton();
+ TicketScreen.do.deleteOrder('-0004');
+ TicketScreen.do.deleteOrder('-0001');
+
+ // After deleting order 1 above, order 2 became
+ // the 2nd-row order and it has payment status
+ TicketScreen.check.nthRowContains(2, 'Payment')
+ TicketScreen.do.deleteOrder('-0002');
+ Chrome.do.confirmPopup();
+ TicketScreen.do.clickNewTicket();
+
+ // Invoice an order
+ ProductScreen.exec.addOrderline('Whiteboard Pen', '5', '6');
+ ProductScreen.do.clickCustomerButton();
+ ProductScreen.do.clickCustomer('Nicole Ford');
+ ProductScreen.do.clickSetCustomer();
+ ProductScreen.do.clickPayButton();
+ PaymentScreen.do.clickPaymentMethod('Bank');
+ PaymentScreen.do.clickInvoiceButton();
+ PaymentScreen.do.clickValidate();
+ ReceiptScreen.check.isShown();
+
+ Tour.register('ChromeTour', { test: true, url: '/pos/ui' }, getSteps());
+});