import { describe, expect, it } from "vitest"; import { readFileSync } from "node:fs"; import { resolve } from "node:path"; const readSource = () => readFileSync(resolve(__dirname, "./MaterialEquipment.vue"), "utf8"); describe("MaterialEquipment desktop list workflow", () => { it("keeps desktop equipment browsing in a master detail workflow", () => { const source = readSource(); expect(source).toContain("const isDesktop = isTauriRuntime();"); expect(source).toContain('class="equipment-workbench"'); expect(source).toContain(":class=\"{ 'is-desktop': isDesktop }\""); expect(source).toContain('class="equipment-preview-pane"'); expect(source).toContain('ref="equipmentTablePaneRef"'); expect(source).toContain("selectedEquipment"); expect(source).toContain('@row-click="handleEquipmentRowClick"'); expect(source).toContain('@row-dblclick="openEquipmentDetail"'); expect(source).toContain('@keydown.enter.prevent="openSelectedEquipment"'); expect(source).toContain("selectEquipment(row);"); expect(source).toContain("equipmentTablePaneRef.value?.focus({ preventScroll: true });"); expect(source).toContain("return;"); expect(source).toContain('router.push({ name: "MaterialEquipmentDetail"'); expect(source).toContain('"row-selected"'); expect(source).not.toContain('@row-click="onRowClick"'); }); it("routes desktop equipment actions through preview and context menu controls", () => { const source = readSource(); expect(source).toContain('@row-contextmenu="openEquipmentContextMenu"'); expect(source).toContain("equipmentContextMenu"); expect(source).toContain('class="equipment-context-menu"'); expect(source).toContain('@click="openSelectedEquipment"'); expect(source).toContain('@click="openSelectedEquipmentEditor"'); expect(source).toContain('@click="removeSelectedEquipment"'); expect(source).toContain('@click="copySelectedEquipmentName"'); expect(source).toContain("if (!isDesktop || !row?.id) return;"); expect(source).toContain('v-if="!isDesktop && (canUpdate || canDelete)"'); }); });