Files
EpicNext-Cms/src/lib/services/furni-import.test.ts
T

53 lines
1.3 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it, vi } from "vitest";
vi.mock("@/lib/db", () => ({
db: {},
CatalogPages: {},
ItemsBase: {},
}));
vi.mock("@/lib/services/furni-data", () => ({
appendFurniEntry: vi.fn(),
buildFurniEntry: vi.fn(),
removeFurniEntry: vi.fn(),
}));
vi.mock("@/lib/services/habbo-furnidata-cache", () => ({
lookupOfficialHabboFurni: vi.fn(),
}));
vi.mock("@/lib/services/import/core/download", () => ({
downloadFile: vi.fn(),
validatePngBytes: vi.fn(),
validateSwfBytes: vi.fn(),
}));
vi.mock("@/lib/services/swf-to-nitro", () => ({
convertSwfToNitro: vi.fn(),
extractIconFromSwf: vi.fn(),
}));
import { buildItemsBaseEnrichmentUpdate } from "./furni-import";
describe("buildItemsBaseEnrichmentUpdate", () => {
it("only updates columns present in the live Arcturus items_base schema", () => {
const update = buildItemsBaseEnrichmentUpdate({
id: 123,
dims: { x: 2, y: 3, z: 1.5 },
cansiton: true,
canlayon: false,
canstandon: true,
allowStack: "1",
interactionType: "default",
});
const serialized = JSON.stringify(update);
expect(serialized).not.toContain("specialtype");
expect(serialized).toContain("UPDATE items_base");
expect(serialized).toContain("123");
expect(serialized).toContain("1.5");
expect(serialized).toContain("default");
});
});