diff --git a/addons/lunch/__manifest__.py b/addons/lunch/__manifest__.py index a3da6315cb7..452d93ff0ca 100644 --- a/addons/lunch/__manifest__.py +++ b/addons/lunch/__manifest__.py @@ -58,6 +58,9 @@ If you want to save your employees' time and avoid them to always have coins in 'lunch/static/src/js/lunch_list_controller.js', 'lunch/static/src/js/lunch_list_renderer.js', ], + 'web.assets_tests': [ + 'lunch/static/tests/tours/*.js', + ], 'web.qunit_suite_tests': [ 'lunch/static/tests/lunch_test_utils.js', 'lunch/static/tests/lunch_kanban_tests.js', diff --git a/addons/lunch/static/tests/tours/order_lunch.js b/addons/lunch/static/tests/tours/order_lunch.js new file mode 100644 index 00000000000..26af8024f8f --- /dev/null +++ b/addons/lunch/static/tests/tours/order_lunch.js @@ -0,0 +1,42 @@ +/** @odoo-module **/ + +import { _t } from 'web.core'; +import tour from 'web_tour.tour'; + +tour.register('order_lunch_tour', { + url: "/web", + test: true, +}, [{ + trigger: 'a[data-menu-xmlid="lunch.menu_lunch"]', + content: _t("Start by accessing the lunch app."), + position: 'bottom', +}, +{ + trigger: ".o_search_panel_filter_value .custom-control-input", + content: _t("Restrict your search using filters"), + position: 'bottom', +}, +{ + trigger: "div[role=article]", + extra_trigger: '.o_search_panel_filter_value .custom-control-input:checked', + content: _t("Click on a product you want to order and is available."), + position: 'bottom', +}, +{ + trigger: 'textarea[name="note"]', + extra_trigger: 'button[name="add_to_cart"]', + content: _t("Add additionnal information about your order."), + position: 'bottom', + run: 'text allergy to peanuts', +}, +{ + trigger: 'button[name="add_to_cart"]', + content: _t("Add your order to the cart."), + position: 'bottom', +}, +{ + trigger: '.o_lunch_widget_order_button', + content: _t("Validate your order"), + position: 'left', + run: 'click', +}]); diff --git a/addons/lunch/tests/test_ui.py b/addons/lunch/tests/test_ui.py new file mode 100644 index 00000000000..cc7b80e402f --- /dev/null +++ b/addons/lunch/tests/test_ui.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests import HttpCase, tagged +from freezegun import freeze_time + +@tagged('-at_install', 'post_install') +class TestUi(HttpCase): + def test_01_ui(self): + self.location_office = self.env['lunch.location'].create({ + 'name' : 'Farm 1', + }) + + self.partner_pizza_inn = self.env['res.partner'].create({ + 'name': 'Pizza Inn', + }) + + self.supplier_pizza_inn = self.env['lunch.supplier'].create({ + 'partner_id': self.partner_pizza_inn.id, + 'send_by': 'phone', + 'mon': True, + 'tue': True, + 'wed': True, + 'thu': True, + 'fri': True, + 'sat': True, + 'sun': True, + 'available_location_ids': [ + (6, 0, [self.location_office.id]) + ], + }) + + self.category_pizza = self.env['lunch.product.category'].create({ + 'name': 'Test category', + }) + + self.product_pizza = self.env['lunch.product'].create({ + 'name': "Aaron's Pizza", + 'category_id': self.category_pizza.id, + 'price': 9, + 'supplier_id': self.supplier_pizza_inn.id, + }) + + with freeze_time("2022-04-19 10:00"): + self.start_tour("/", 'order_lunch_tour', login='admin', timeout=180)