1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/pos_restaurant_preparation_display/tests/test_frontend.py
2024-12-10 09:04:09 +07:00

112 lines
7.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.pos_restaurant.tests import test_frontend
from odoo import Command
import odoo.tests
@odoo.tests.tagged('post_install', '-at_install')
class TestUi(test_frontend.TestFrontendCommon):
def test_01_preparation_display_resto(self):
self.env['pos_preparation_display.display'].create({
'name': 'Preparation Display',
'pos_config_ids': [(4, self.pos_config.id)],
})
# open a session, the /pos/ui controller will redirect to it
self.pos_config.printer_ids.unlink()
self.pos_config.with_user(self.user_demo).open_ui()
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourResto', login="demo")
# Order 1 should have 2 preparation orderlines (Coca-Cola and Water)
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)], limit=1)
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
# Order 2 should have 1 preparation orderline (Coca-Cola)
order2 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0002')], limit=1)
pdis_order2 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order2.id)], limit=1)
self.assertEqual(len(pdis_order2.preparation_display_order_line_ids), 1, "Should have 1 preparation orderline")
self.assertEqual(pdis_order2.preparation_display_order_line_ids.product_quantity, 1, "Should have 1 quantity of Coca-Cola")
# Order 3 should have 3 preparation orderlines (Coca-Cola, Water and Minute Maid)
# with one cancelled Minute Maid
order3 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0003')], limit=1)
pdis_order3 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order3.id)], limit=1)
cancelled_orderline = pdis_order3.preparation_display_order_line_ids.filtered(lambda x: x.product_id.name == 'Minute Maid')
self.assertEqual(cancelled_orderline.product_cancelled, 1, "Should have 1 cancelled Minute Maid orderline")
self.assertEqual(cancelled_orderline.product_id.name, 'Minute Maid', "Cancelled orderline should be Minute Maid")
def test_preparation_display_with_internal_note(self):
self.env['pos_preparation_display.display'].create({
'name': 'Preparation Display',
'pos_config_ids': [(4, self.pos_config.id)],
})
self.pos_config.printer_ids.unlink()
self.pos_config.with_user(self.user_demo).open_ui()
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourInternalNotes', login="demo")
# Order 1 should have 2 preparation orderlines (Coca-Cola and Water)
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "Test Internal Notes")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "Test Internal Notes")
def test_bill_preparation_display(self):
pos_config = self.env['pos.config'].create({
'name': 'Restaurant',
'module_pos_restaurant': True,
'iface_printbill': True,
})
pdis = self.env['pos_preparation_display.display'].create({
'name': 'Preparation Display',
'pos_config_ids': [Command.link(pos_config.id)],
})
order_count = pdis.order_count
pos_config.with_user(self.user_demo).open_ui()
self.start_tour("/pos/ui?config_id=%d" % pos_config.id, 'MakeBillTour', login="demo")
self.assertEqual(order_count, pdis.order_count)
def test_preparation_display_with_empty_internal_note(self):
self.env['pos_preparation_display.display'].create({
'name': 'Preparation Display',
'pos_config_ids': [(4, self.pos_config.id)],
})
self.pos_config.printer_ids.unlink()
self.pos_config.with_user(self.user_demo).open_ui()
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourEmptyInternalNotes', login="demo")
# Order 1 should have 2 preparation orderlines (Coca-Cola and Coca-Cola)
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 2, "Should have 2 preparation orderlines")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "")
def test_preparation_display_with_internal_notes(self):
self.env['pos_preparation_display.display'].create({
'name': 'Preparation Display',
'pos_config_ids': [(4, self.pos_config.id)],
})
self.pos_config.printer_ids.unlink()
self.pos_config.with_user(self.user_demo).open_ui()
self.start_tour("/pos/ui?config_id=%d" % self.pos_config.id, 'PreparationDisplayTourWithInternalNotes', login="demo")
# Order 1 should have 3 preparation orderlines (Coca-Cola, Coca-Cola and Coca-Cola)
order1 = self.env['pos.order'].search([('pos_reference', 'ilike', '%-0001')], limit=1)
pdis_order1 = self.env['pos_preparation_display.order'].search([('pos_order_id', '=', order1.id)])
self.assertEqual(len(pdis_order1.preparation_display_order_line_ids), 3, "Should have 3 preparation orderlines")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[0].internal_note, "Test Internal Notes")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[1].internal_note, "Test Internal Notes")
self.assertEqual(pdis_order1.preparation_display_order_line_ids[2].product_quantity, 1)
self.assertEqual(pdis_order1.preparation_display_order_line_ids[2].internal_note, "Test Internal Notes")