41 行
1.4 KiB
JavaScript
41 行
1.4 KiB
JavaScript
|
|
const erp = require("../../../../src/services/integrations/erp");
|
|
|
|
describe("ERP Sync Services", () => {
|
|
it("builds correct payload map", () => {
|
|
const payload = erp.buildErpPayload({
|
|
reimbursement: {
|
|
id: "r1",
|
|
form_number: "F001",
|
|
payment_date: "2026-03-01T12:00:00.000Z",
|
|
},
|
|
});
|
|
expect(payload.formNumber).toBe("F001");
|
|
expect(payload.paymentDate).toBe("2026-03-01");
|
|
});
|
|
|
|
it("returns mock synced when provider is mock", async () => {
|
|
const result = await erp.pushPaidReimbursementToErp(
|
|
{ erpSyncEnabled: true, erpSyncProvider: "mock" },
|
|
{ formNumber: "F001" }
|
|
);
|
|
expect(result.ok).toBe(true);
|
|
expect(result.code).toBe("mock_synced");
|
|
});
|
|
|
|
it("returns invalid provider if unsupported", async () => {
|
|
const result = await erp.pushPaidReimbursementToErp(
|
|
{ erpSyncEnabled: true, erpSyncProvider: "invalid_xyz" },
|
|
{}
|
|
);
|
|
expect(result.ok).toBe(false);
|
|
expect(result.code).toBe("erp_sync_provider_invalid");
|
|
});
|
|
|
|
it("returns disabled if disabled in config", async () => {
|
|
const result = await erp.pushPaidReimbursementToErp({ erpSyncEnabled: false }, {});
|
|
expect(result.ok).toBe(false);
|
|
expect(result.code).toBe("erp_sync_disabled");
|
|
});
|
|
});
|