Files
enterprise-addons/pos_urban_piper/static/tests/unit/screens/ticket_screen.test.js
T

75 lines
2.8 KiB
JavaScript

import { definePosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
import { test, expect } from "@odoo/hoot";
import { mountWithCleanup } from "@web/../tests/web_test_helpers";
import { TicketScreen } from "@point_of_sale/app/screens/ticket_screen/ticket_screen";
import { getUrbanPiperFilledOrder } from "@pos_urban_piper/../tests/unit/utils";
import { setupPosEnvForPrepDisplay } from "@pos_enterprise/../tests/unit/utils";
definePosModels();
test("_getSearchFields", async () => {
await setupPosEnvForPrepDisplay();
const comp = await mountWithCleanup(TicketScreen, {});
const fields = comp._getSearchFields();
expect(Object.keys(fields)).toEqual([
"REFERENCE",
"RECEIPT_NUMBER",
"INVOICE_NUMBER",
"DATE",
"PARTNER",
"DELIVERYPROVIDER",
"ORDERSTATUS",
]);
});
test("_acceptOrder, _dispatchOrder, _completeOrder", async () => {
const store = await setupPosEnvForPrepDisplay();
const order = await getUrbanPiperFilledOrder(store);
const comp = await mountWithCleanup(TicketScreen, {});
await comp._acceptOrder(order);
expect(comp.state.upState).toBeEmpty();
expect(order.delivery_status).toBe("acknowledged");
expect(order.uiState.orderAcceptTime).not.toBeEmpty();
await comp._dispatchOrder(order);
expect(order.delivery_status).toBe("dispatched");
expect(comp.state.upState).toBeEmpty();
await comp._completeOrder(order);
expect(order.delivery_status).toBe("completed");
expect(comp.state.upState).toBeEmpty();
});
test("getFilteredOrderList", async () => {
const store = await setupPosEnvForPrepDisplay();
const comp = await mountWithCleanup(TicketScreen, {});
(await getUrbanPiperFilledOrder(store)).delivery_status = "food_ready";
(await getUrbanPiperFilledOrder(store)).delivery_status = "dispatched";
(await getUrbanPiperFilledOrder(store)).delivery_status = "completed";
(await getUrbanPiperFilledOrder(store)).delivery_status = "placed";
comp.state.upState = "DONE";
expect((await comp.getFilteredOrderList()).map((o) => o.delivery_status)).toEqual([
"food_ready",
"dispatched",
"completed",
]);
});
test("getDate", async () => {
const store = await setupPosEnvForPrepDisplay();
const order = await getUrbanPiperFilledOrder(store);
const comp = await mountWithCleanup(TicketScreen, {});
expect(comp.getDate(order)).toBe("Today");
order.date_order = luxon.DateTime.now().minus({ days: 1 });
expect(comp.getDate(order)).toMatch(/\d{2}\/\d{2}\/\d{4}/);
});
test("postRefund", async () => {
const store = await setupPosEnvForPrepDisplay();
const order = await getUrbanPiperFilledOrder(store);
const comp = await mountWithCleanup(TicketScreen, {});
comp.postRefund(order);
expect(order.isDeliveryRefundOrder).toBe(true);
});