Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion addons/pos_self_order/controllers/self_entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ def start_self_ordering(self, config_id=None, access_token=None, table_identifie

@http.route("/pos-self/data/<config_id>", type='jsonrpc', auth='public', website=True)
def get_self_ordering_data(self, config_id=None, access_token=None, table_identifier=None):
pos_config, _, _ = self._verify_entry_access(config_id, access_token, table_identifier)
pos_config, _, config_access_token = self._verify_entry_access(config_id, access_token, table_identifier)
data = pos_config.load_self_data()
data['pos.config'][0]['access_token'] = config_access_token
return data

@http.route("/pos-self/relations/<config_id>", type='jsonrpc', auth='public')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import { rpc } from "@web/core/network/rpc";
patch(PosData.prototype, {
async loadInitialData() {
const configId = session.data.config_id;
return await rpc(`/pos-self/data/${parseInt(configId)}`);
return await rpc(`/pos-self/data/${parseInt(configId)}`, {
access_token: odoo.access_token,
});
},
async loadFieldsAndRelations() {
const configId = session.data.config_id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,3 +338,12 @@ registry.category("web_tour.tours").add("test_mobile_self_order_preparation_chan
Utils.clickBtn("Ok"),
].flat(),
});

registry.category("web_tour.tours").add("self_order_mobile_no_access_token", {
steps: () =>
[
Utils.checkIsNoBtn("My Order"),
Utils.clickBtn("Order Now"),
Utils.negateStep(Utils.checkBtn("Order")),
].flat(),
});
12 changes: 12 additions & 0 deletions addons/pos_self_order/static/tests/tours/utils/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ export function clickBtn(buttonName) {
};
}

export function negate(selector, parent = "body") {
return `${parent}:not(:has(${selector}))`;
}

export function negateStep(step) {
return {
...step,
content: `Check that: ---${step.content}--- is not true`,
trigger: negate(step.trigger),
};
}

export function checkBtn(buttonName) {
return {
content: `Check is button '${buttonName}'`,
Expand Down
2 changes: 1 addition & 1 deletion addons/pos_self_order/tests/test_self_order_kiosk.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
@odoo.tests.tagged("post_install", "-at_install")
class TestSelfOrderKiosk(SelfOrderCommonTest):
def test_self_order_kiosk(self):
self_route = self.pos_config._get_self_order_route()
self.pos_config.write({
'self_ordering_mode': 'kiosk',
'self_ordering_pay_after': 'each',
'self_ordering_service_mode': 'table',
})
self.pos_config.with_user(self.pos_user).open_ui()
self.pos_config.current_session_id.set_opening_control(0, "")
self_route = self.pos_config._get_self_order_route()

tax_10_inc = self.env['account.tax'].create({
"name": "10% incl",
Expand Down
17 changes: 17 additions & 0 deletions addons/pos_self_order/tests/test_self_order_mobile.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.

import odoo.tests

from urllib.parse import urlparse
from odoo.addons.pos_self_order.tests.self_order_common_test import SelfOrderCommonTest
from unittest.mock import patch

Expand Down Expand Up @@ -124,6 +126,21 @@ def test_self_order_category_with_only_special_products(self):
with patch("odoo.addons.point_of_sale.models.pos_config.PosConfig._get_special_products", return_value=prod1 + prod2):
self.start_tour(self_route, "self_order_mobile_special_products_category")

def test_self_order_mobile_no_access_token(self):
self.pos_config.write({
'self_ordering_mode': 'mobile',
'self_ordering_pay_after': 'each',
'self_ordering_service_mode': 'table',
})

self.pos_config.with_user(self.pos_user).open_ui()
self.pos_config.current_session_id.set_opening_control(0, "")
self_route = self.pos_config._get_self_order_route()

# removing access token to simulate a request without it
route = urlparse(self_route)
self.start_tour(route.path, "self_order_mobile_no_access_token")

def test_self_order_mobile_0_price_order(self):
self.pos_config.write({
'self_ordering_mode': 'mobile',
Expand Down