import { fireEvent, render, screen } from "@testing-library/react";
import Addon from "../../models/addons/Addon";
import AddonSub from "../../models/addons/AddonSub";
import AddonsList from ".";
const createAddons = () => {
const temperature = new AddonSub("Temperature", 20);
temperature.selected = true;
return [new Addon("Environment", [temperature, new AddonSub("Light", 0)])];
};
describe("AddonsList", () => {
it("keeps signal selection available through an accessible disclosure", () => {
render();
const disclosure = screen.getByRole("button", {
name: /Available signals 1 selected/i,
});
const regionId = disclosure.getAttribute("aria-controls");
expect(disclosure.getAttribute("aria-expanded")).toBe("true");
expect(regionId).toBeTruthy();
expect(document.getElementById(regionId!)).not.toBeNull();
fireEvent.click(disclosure);
expect(disclosure.getAttribute("aria-expanded")).toBe("false");
expect(document.getElementById(regionId!)?.hidden).toBe(true);
fireEvent.click(disclosure);
expect(disclosure.getAttribute("aria-expanded")).toBe("true");
expect(document.getElementById(regionId!)?.hidden).toBe(false);
});
it("provides an explicit empty state when no signals are available", () => {
render();
expect(screen.getByText("No signals are available yet.")).not.toBeNull();
});
});