import { describe, it, expect, beforeEach } from "vitest";
import { mount } from "@vue/test-utils";
import { setActivePinia, createPinia } from "pinia";
import { useScanningStore } from "../../stores/scanning.js";
import { useDevicesStore } from "../../stores/devices.js";
import DevicesScanningPage from "../../features/devices/pages/DevicesScanningPage.vue";
describe("Device discovery integration", () => {
beforeEach(() => {
setActivePinia(createPinia());
});
it("discovers devices via scan", async () => {
const wrapper = mount(DevicesScanningPage);
const store = useScanningStore();
await store.scan();
expect(store.devices.length).toBeGreaterThan(0);
expect(store.devices[0].status).toBe("setup");
});
it("sets up a new device and it appears in device list", async () => {
const scanningStore = useScanningStore();
const devicesStore = useDevicesStore();
await scanningStore.scan();
const foundDevice = scanningStore.devices[0];
const result = await scanningStore.setupDevice({
device_ip: foundDevice.ip_address,
alias: "new_relay",
name: "New Relay",
description: "",
});
expect(result.ok).toBe(true);
});
});