|
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
import { resetEnvCache } from "@/lib/env";
|
|
|
|
|
|
vi.mock("@/services/db", () => ({
|
|
|
prisma: {
|
|
|
containerActiveLock: {
|
|
|
findUnique: vi.fn().mockResolvedValue(null),
|
|
|
},
|
|
|
containerImport: {
|
|
|
findFirst: vi.fn().mockResolvedValue(null),
|
|
|
findMany: vi.fn().mockResolvedValue([]),
|
|
|
},
|
|
|
},
|
|
|
}));
|
|
|
|
|
|
import { checkContainerConflict } from "@/services/cc/conflict";
|
|
|
|
|
|
describe("A-4.4 force skip conflict", () => {
|
|
|
beforeEach(() => {
|
|
|
process.env.DATABASE_URL =
|
|
|
process.env.DATABASE_URL ||
|
|
|
"mysql://app:app@localhost:7023/email_forecast";
|
|
|
process.env.CC_MOCK = "true";
|
|
|
resetEnvCache();
|
|
|
});
|
|
|
|
|
|
afterEach(() => {
|
|
|
resetEnvCache();
|
|
|
});
|
|
|
|
|
|
it("ENABLE_FORCE_IMPORT + forceSkipConflict → ok(跳过 GetContainerList)", async () => {
|
|
|
process.env.ENABLE_FORCE_IMPORT = "true";
|
|
|
resetEnvCache();
|
|
|
|
|
|
const r = await checkContainerConflict({
|
|
|
mailId: 99n,
|
|
|
containerNo: "MATU2745683",
|
|
|
forceSkipConflict: true,
|
|
|
actor: "admin",
|
|
|
});
|
|
|
expect(r.ok).toBe(true);
|
|
|
});
|
|
|
|
|
|
it("force flag ignored when ENABLE_FORCE_IMPORT=false(仍走 mock 列表)", async () => {
|
|
|
process.env.ENABLE_FORCE_IMPORT = "false";
|
|
|
process.env.CC_MOCK = "true";
|
|
|
resetEnvCache();
|
|
|
|
|
|
const r = await checkContainerConflict({
|
|
|
mailId: 99n,
|
|
|
containerNo: "MATU2745683",
|
|
|
forceSkipConflict: true,
|
|
|
actor: "admin",
|
|
|
});
|
|
|
expect(r.ok).toBe(true);
|
|
|
});
|
|
|
});
|