75 lines
2.8 KiB
JavaScript
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);
|
|
});
|