55 lines
2.0 KiB
TypeScript
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);
|
|
});
|
|
});
|