// @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"); }); });