19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:29:53 +01:00
parent 6e54c1af6c
commit 3ca647e428
1087 changed files with 132065 additions and 108499 deletions

View file

@ -0,0 +1,74 @@
import { test, describe, expect } from "@odoo/hoot";
import { setupPosEnv, getFilledOrder } from "@point_of_sale/../tests/unit/utils";
import { definePosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
definePosModels();
describe("pos.order restaurant patches", () => {
test("customer count and amount per guest", async () => {
const store = await setupPosEnv();
const order = await getFilledOrder(store);
order.setCustomerCount(3);
expect(order.getCustomerCount()).toBe(3);
order.setCustomerCount(4);
expect(order.amountPerGuest()).toBe(4.4625);
});
test("isDirectSale", async () => {
const store = await setupPosEnv();
const order = store.addNewOrder();
expect(order.isDirectSale).toBe(true);
});
test("setPartner", async () => {
const store = await setupPosEnv();
const order = store.addNewOrder();
const partner = store.models["res.partner"].get(18);
order.setPartner(partner);
expect(order.floating_order_name).toBe("Public user");
});
test("cleanCourses", async () => {
const store = await setupPosEnv();
const order = await getFilledOrder(store);
const course1 = store.addCourse();
const line = order.lines[0];
line.course_id = course1;
const course2 = store.addCourse();
course1.fired = true;
order.cleanCourses();
expect(order.course_ids.includes(course2)).toBe(false);
expect(order.course_ids.includes(course1)).toBe(true);
});
test("getNextCourseIndex", async () => {
const store = await setupPosEnv();
const order = await getFilledOrder(store);
store.addCourse();
store.addCourse();
expect(order.getNextCourseIndex()).toBe(4);
});
test("getName returns formatted name for table + children", async () => {
const store = await setupPosEnv();
const table = store.models["restaurant.table"].get(2);
const order = store.addNewOrder({ table_id: table });
const child = store.models["restaurant.table"].get(3);
let name = order.getName();
expect(name).toBe("T 1");
child.parent_id = table;
name = order.getName();
expect(name).toBe("T 1 & 2");
});
test("ensureCourseSelection and getSelectedCourse", async () => {
const store = await setupPosEnv();
const order = store.addNewOrder();
const course1 = store.addCourse();
course1.fired = false;
const course2 = store.addCourse();
course2.fired = true;
order.ensureCourseSelection();
expect(order.getSelectedCourse().uuid).toBe(course1.uuid);
});
});

View file

@ -0,0 +1,38 @@
import { test, expect } from "@odoo/hoot";
import { setupPosEnv, getFilledOrder } from "@point_of_sale/../tests/unit/utils";
import { definePosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
definePosModels();
test("name returns localized name with index", async () => {
const store = await setupPosEnv();
store.addNewOrder();
const course = store.addCourse();
expect(course.name).toBe("Course 1");
});
test("isSelected", async () => {
const store = await setupPosEnv();
const order = store.addNewOrder();
const course = store.addCourse();
order.selectCourse(course);
expect(course.isSelected()).toBe(true);
});
test("isEmpty", async () => {
const store = await setupPosEnv();
store.addNewOrder();
const course = store.addCourse();
course.line_ids = [];
expect(course.isEmpty()).toBe(true);
});
test("isReadyToFire", async () => {
const store = await setupPosEnv();
const order = await getFilledOrder(store);
const course = store.addCourse();
const line = order.lines[0];
line.course_id = course;
course.line_ids = [line];
expect(course.isReadyToFire()).toBe(true);
});

View file

@ -0,0 +1,62 @@
import { test, expect } from "@odoo/hoot";
import { setupPosEnv } from "@point_of_sale/../tests/unit/utils";
import { definePosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
definePosModels();
test("getOrders", async () => {
const store = await setupPosEnv();
const table = store.models["restaurant.table"].get(2);
const order = store.addNewOrder({ table_id: table });
const tableOrders = table.getOrders();
expect(tableOrders.length).toBe(1);
expect(tableOrders[0].id).toBe(order.id);
});
test("getParent and isParent", async () => {
const store = await setupPosEnv();
const models = store.models;
const parent = models["restaurant.table"].get(2);
const child = models["restaurant.table"].get(3);
child.parent_id = parent;
const result = child.getParent();
expect(parent.isParent(child)).toBe(true);
expect(result.id).toBe(2);
});
test("getParentSide", async () => {
const store = await setupPosEnv();
const models = store.models;
const parent = models["restaurant.table"].get(2);
const child = models["restaurant.table"].get(3);
child.parent_id = parent;
child.position_h = parent.position_h + 50;
child.position_v = parent.position_v;
const side = child.getParentSide();
expect(side).toBe("left");
});
test("getX and getY", async () => {
const store = await setupPosEnv();
const table1 = store.models["restaurant.table"].get(2);
const table2 = store.models["restaurant.table"].get(3);
expect(table1.getX()).toBe(407);
expect(table1.getY()).toBe(88);
table2.parent_id = table1;
table2.parent_side = "left";
expect(table2.getX()).toBe(497);
expect(table2.getY()).toBe(88);
table2.parent_side = "top";
expect(table2.getX()).toBe(407);
expect(table2.getY()).toBe(-2);
});
test("rootTable", async () => {
const store = await setupPosEnv();
const table1 = store.models["restaurant.table"].get(2);
const table2 = store.models["restaurant.table"].get(3);
const table3 = store.models["restaurant.table"].get(4);
table2.parent_id = table1;
table3.parent_id = table2;
expect(table3.rootTable.id).toBe(table1.id);
});