mirror of
https://github.com/MeshCore-Beacon/beacon-web.git
synced 2026-09-04 04:33:45 +00:00
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import { describe, it, expect, vi } from "vitest";
|
|
import { render, screen, fireEvent } from "@testing-library/react";
|
|
import { PacketRow } from "../../../src/features/packets/PacketRow";
|
|
import type { PacketSummary } from "../../../src/types/api";
|
|
|
|
const pkt = (over: Partial<PacketSummary> = {}): PacketSummary => ({
|
|
packetHash: "AA11", payloadType: 1, payloadTypeName: "ADVERT",
|
|
routeType: 1, routeTypeName: "FLOOD",
|
|
firstHeardAt: 1700000000, lastHeardAt: 1700000002, observationCount: 2, ...over,
|
|
});
|
|
|
|
const tokens = (el: Element) => (el.getAttribute("class") ?? "").split(/\s+/);
|
|
|
|
describe("PacketRow", () => {
|
|
// expanded card loses its bottom radius so the expansion below reads as the same card unfolding
|
|
it("squares its bottom corners while expanded", () => {
|
|
const { container } = render(<PacketRow packet={pkt()} expanded onToggle={() => {}} />);
|
|
expect(tokens(container.firstElementChild!)).toContain("rounded-b-none");
|
|
});
|
|
|
|
it("keeps rounded corners while collapsed", () => {
|
|
const { container } = render(<PacketRow packet={pkt()} expanded={false} onToggle={() => {}} />);
|
|
expect(tokens(container.firstElementChild!)).not.toContain("rounded-b-none");
|
|
});
|
|
|
|
it("toggles on click", () => {
|
|
const onToggle = vi.fn();
|
|
render(<PacketRow packet={pkt()} expanded={false} onToggle={onToggle} />);
|
|
fireEvent.click(screen.getByText("AA11"));
|
|
expect(onToggle).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|