frontend/test/common/entity/context/get_device_context.test.ts

94 lines
1.9 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { getDeviceContext } from "../../../../src/common/entity/context/get_device_context";
import type { HomeAssistant } from "../../../../src/types";
import { mockArea, mockDevice, mockFloor } from "./context-mock";
describe("getDeviceContext", () => {
it("should return the correct context when the device exists without area", () => {
const device = mockDevice({
id: "device_1",
});
const hass = {
devices: {
device_1: device,
},
areas: {},
floors: {},
} as unknown as HomeAssistant;
const result = getDeviceContext(device, hass);
expect(result).toEqual({
device,
area: null,
floor: null,
});
});
it("should return the correct context when the device exists with area but no floor", () => {
const device = mockDevice({
id: "device_2",
area_id: "area_1",
});
const area = mockArea({
area_id: "area_1",
});
const hass = {
devices: {
device_2: device,
},
areas: {
area_1: area,
},
floors: {},
} as unknown as HomeAssistant;
const result = getDeviceContext(device, hass);
expect(result).toEqual({
device,
area,
floor: null,
});
});
it("should return the correct context when the device exists with area and floor", () => {
const device = mockDevice({
id: "device_3",
area_id: "area_2",
});
const area = mockArea({
area_id: "area_2",
floor_id: "floor_1",
});
const floor = mockFloor({
floor_id: "floor_1",
});
const hass = {
devices: {
device_3: device,
},
areas: {
area_2: area,
},
floors: {
floor_1: floor,
},
} as unknown as HomeAssistant;
const result = getDeviceContext(device, hass);
expect(result).toEqual({
device,
area,
floor,
});
});
});