diff --git a/addons/pos_restaurant/static/src/js/Screens/TipScreen.js b/addons/pos_restaurant/static/src/js/Screens/TipScreen.js index d599be6d8e7..f8c8c48d228 100644 --- a/addons/pos_restaurant/static/src/js/Screens/TipScreen.js +++ b/addons/pos_restaurant/static/src/js/Screens/TipScreen.js @@ -62,7 +62,7 @@ export class TipScreen extends Component { } if (!amount) { - await this.orm.call("set_no_tip", "pos.order", [serverId]); + await this.orm.call("pos.order", "set_no_tip", [serverId]); this.goNextScreen(); return; } diff --git a/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js index bd1e1e61dc0..779571c4f7b 100644 --- a/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js +++ b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js @@ -130,4 +130,17 @@ PaymentScreen.do.clickPaymentMethod("Cash"); PaymentScreen.do.clickValidate(); ReceiptScreen.check.isShown(); +// order 5 +// Click directly on "settle" without selecting a Tip +ReceiptScreen.do.clickNextOrder(); +FloorScreen.do.clickTable("2"); +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(); +TipScreen.do.clickSettle(); +FloorScreen.check.isShown(); + registry.category("web_tour.tours").add("PosResTipScreenTour", { test: true, url: "/pos/ui", steps: getSteps() }); diff --git a/addons/pos_restaurant/static/tests/tours/helpers/TipScreenTourMethods.js b/addons/pos_restaurant/static/tests/tours/helpers/TipScreenTourMethods.js index 908e67a6bc9..de593535738 100644 --- a/addons/pos_restaurant/static/tests/tours/helpers/TipScreenTourMethods.js +++ b/addons/pos_restaurant/static/tests/tours/helpers/TipScreenTourMethods.js @@ -18,6 +18,13 @@ class Do { }, ]; } + clickSettle() { + return [ + { + trigger: `.button.highlight.next`, + }, + ]; + } } class Check { diff --git a/addons/pos_restaurant/tests/test_frontend.py b/addons/pos_restaurant/tests/test_frontend.py index a5b58352a02..b9b2ccc1573 100644 --- a/addons/pos_restaurant/tests/test_frontend.py +++ b/addons/pos_restaurant/tests/test_frontend.py @@ -193,10 +193,13 @@ class TestFrontend(odoo.tests.HttpCase): order2 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0002')]) order3 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0003')]) order4 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0004')]) + order5 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0005')]) + self.assertTrue(order1.is_tipped and order1.tip_amount == 0.40) self.assertTrue(order2.is_tipped and order2.tip_amount == 1.00) self.assertTrue(order3.is_tipped and order3.tip_amount == 1.50) self.assertTrue(order4.is_tipped and order4.tip_amount == 1.00) + self.assertTrue(order5.is_tipped and order5.tip_amount == 0.00) def test_06_split_bill_screen(self): self.pos_config.with_user(self.env.ref('base.user_admin')).open_ui()