diff options
Diffstat (limited to 'addons/pos_restaurant/static/tests/tours/TipScreen.tour.js')
| -rw-r--r-- | addons/pos_restaurant/static/tests/tours/TipScreen.tour.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js new file mode 100644 index 00000000..430c7a2f --- /dev/null +++ b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js @@ -0,0 +1,123 @@ +odoo.define('pos_restaurant.tour.TipScreen', function (require) { + 'use strict'; + + const { ProductScreen } = require('point_of_sale.tour.ProductScreenTourMethods'); + const { PaymentScreen } = require('point_of_sale.tour.PaymentScreenTourMethods'); + const { ReceiptScreen } = require('point_of_sale.tour.ReceiptScreenTourMethods'); + const { FloorScreen } = require('pos_restaurant.tour.FloorScreenTourMethods'); + const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods'); + const { TipScreen } = require('pos_restaurant.tour.TipScreenTourMethods'); + const { NumberPopup } = require('point_of_sale.tour.NumberPopupTourMethods'); + const { Chrome } = require('pos_restaurant.tour.ChromeTourMethods'); + const { getSteps, startSteps } = require('point_of_sale.tour.utils'); + var Tour = require('web_tour.tour'); + + startSteps(); + + // Create order that is synced when draft. + // order 1 + FloorScreen.do.clickTable('T2'); + ProductScreen.exec.addOrderline('Minute Maid', '1', '2'); + ProductScreen.check.totalAmountIs('2.0'); + Chrome.do.backToFloor(); + FloorScreen.check.orderCountSyncedInTableIs('T2', '1'); + FloorScreen.do.clickTable('T2'); + ProductScreen.check.totalAmountIs('2.0'); + ProductScreen.do.clickPayButton(); + PaymentScreen.do.clickPaymentMethod('Bank'); + PaymentScreen.do.clickValidate(); + TipScreen.check.isShown(); + Chrome.do.clickTicketButton(); + TicketScreen.do.clickNewTicket(); + // order 2 + ProductScreen.exec.addOrderline('Coca-Cola', '2', '2'); + ProductScreen.check.totalAmountIs('4.0'); + Chrome.do.backToFloor(); + FloorScreen.check.orderCountSyncedInTableIs('T2', '1'); + Chrome.do.clickTicketButton(); + TicketScreen.check.nthRowContains('2', 'Tipping'); + TicketScreen.do.clickDiscard(); + + // Create without syncing the draft. + // order 3 + FloorScreen.do.clickTable('T5'); + ProductScreen.exec.addOrderline('Minute Maid', '3', '2'); + ProductScreen.check.totalAmountIs('6.0'); + ProductScreen.do.clickPayButton(); + PaymentScreen.do.clickPaymentMethod('Bank'); + PaymentScreen.do.clickValidate(); + TipScreen.check.isShown(); + Chrome.do.clickTicketButton(); + TicketScreen.do.clickNewTicket(); + // order 4 + ProductScreen.exec.addOrderline('Coca-Cola', '4', '2'); + ProductScreen.check.totalAmountIs('8.0'); + Chrome.do.backToFloor(); + FloorScreen.check.orderCountSyncedInTableIs('T5', '1'); + Chrome.do.clickTicketButton(); + TicketScreen.check.nthRowContains('4', 'Tipping'); + + // Tip 20% on order1 + TicketScreen.do.selectOrder('-0001'); + TipScreen.check.isShown(); + TipScreen.check.totalAmountIs('2.0'); + TipScreen.check.percentAmountIs('15%', '0.30'); + TipScreen.check.percentAmountIs('20%', '0.40'); + TipScreen.check.percentAmountIs('25%', '0.50'); + TipScreen.do.clickPercentTip('20%'); + TipScreen.check.inputAmountIs('0.40') + Chrome.do.backToFloor(); + FloorScreen.check.isShown(); + Chrome.do.clickTicketButton(); + + // Tip 25% on order3 + TicketScreen.do.selectOrder('-0003'); + TipScreen.check.isShown(); + TipScreen.check.totalAmountIs('6.0'); + TipScreen.check.percentAmountIs('15%', '0.90'); + TipScreen.check.percentAmountIs('20%', '1.20'); + TipScreen.check.percentAmountIs('25%', '1.50'); + TipScreen.do.clickPercentTip('25%'); + TipScreen.check.inputAmountIs('1.50'); + Chrome.do.backToFloor(); + FloorScreen.check.isShown(); + Chrome.do.clickTicketButton(); + + // finalize order 4 then tip custom amount + TicketScreen.do.selectOrder('-0004'); + ProductScreen.check.totalAmountIs('8.0'); + ProductScreen.do.clickPayButton(); + PaymentScreen.do.clickPaymentMethod('Bank'); + PaymentScreen.do.clickValidate(); + TipScreen.check.isShown(); + TipScreen.check.totalAmountIs('8.0'); + TipScreen.check.percentAmountIs('15%', '1.20'); + TipScreen.check.percentAmountIs('20%', '1.60'); + TipScreen.check.percentAmountIs('25%', '2.00'); + TipScreen.do.setCustomTip('1.00'); + TipScreen.check.inputAmountIs('1.00') + Chrome.do.backToFloor(); + FloorScreen.check.isShown(); + + // settle tips here + Chrome.do.clickTicketButton(); + TicketScreen.do.selectFilter('Tipping'); + TicketScreen.do.settleTips(); + TicketScreen.do.selectFilter('All Tickets'); + TicketScreen.check.nthRowContains(2, 'Ongoing'); + + // tip order2 during payment + // tip screen should not show after validating payment screen + TicketScreen.do.selectOrder('-0002'); + ProductScreen.do.clickPayButton(); + PaymentScreen.do.clickTipButton(); + NumberPopup.check.isShown(); + NumberPopup.do.pressNumpad('1'); + NumberPopup.check.inputShownIs('1'); + NumberPopup.do.clickConfirm(); + PaymentScreen.do.clickPaymentMethod('Cash'); + PaymentScreen.do.clickValidate(); + ReceiptScreen.check.isShown(); + + Tour.register('PosResTipScreenTour', { test: true, url: '/pos/ui' }, getSteps()); +}); |
