frontend/test/common/entity/cover_icon.test.ts

55 lines
2.0 KiB
TypeScript

import type { HassEntity } from "home-assistant-js-websocket";
import {
mdiArrowCollapseHorizontal,
mdiArrowDown,
mdiArrowExpandHorizontal,
mdiArrowUp,
} from "@mdi/js";
import { describe, it, expect } from "vitest";
import {
computeOpenIcon,
computeCloseIcon,
} from "../../../src/common/entity/cover_icon";
describe("computeOpenIcon", () => {
it("returns mdiArrowExpandHorizontal for awning, door, gate, and curtain", () => {
const stateObj = { attributes: { device_class: "awning" } } as HassEntity;
expect(computeOpenIcon(stateObj)).toBe(mdiArrowExpandHorizontal);
stateObj.attributes.device_class = "door";
expect(computeOpenIcon(stateObj)).toBe(mdiArrowExpandHorizontal);
stateObj.attributes.device_class = "gate";
expect(computeOpenIcon(stateObj)).toBe(mdiArrowExpandHorizontal);
stateObj.attributes.device_class = "curtain";
expect(computeOpenIcon(stateObj)).toBe(mdiArrowExpandHorizontal);
});
it("returns mdiArrowUp for other device classes", () => {
const stateObj = { attributes: { device_class: "window" } } as HassEntity;
expect(computeOpenIcon(stateObj)).toBe(mdiArrowUp);
});
});
describe("computeCloseIcon", () => {
it("returns mdiArrowCollapseHorizontal for awning, door, gate, and curtain", () => {
const stateObj = { attributes: { device_class: "awning" } } as HassEntity;
expect(computeCloseIcon(stateObj)).toBe(mdiArrowCollapseHorizontal);
stateObj.attributes.device_class = "door";
expect(computeCloseIcon(stateObj)).toBe(mdiArrowCollapseHorizontal);
stateObj.attributes.device_class = "gate";
expect(computeCloseIcon(stateObj)).toBe(mdiArrowCollapseHorizontal);
stateObj.attributes.device_class = "curtain";
expect(computeCloseIcon(stateObj)).toBe(mdiArrowCollapseHorizontal);
});
it("returns mdiArrowDown for other device classes", () => {
const stateObj = { attributes: { device_class: "window" } } as HassEntity;
expect(computeCloseIcon(stateObj)).toBe(mdiArrowDown);
});
});