blob: a580a8f6c8b0cc44f46a7ebef2b862e6c059c2df [file] [log] [blame]
Sean McCullough86b56862025-04-18 13:04:03 -07001import { html, fixture, expect } from "@open-wc/testing";
2import "./sketch-network-status";
3import type { SketchNetworkStatus } from "./sketch-network-status";
4
5describe("SketchNetworkStatus", () => {
6 it("displays the correct connection status when connected", async () => {
7 const el: SketchNetworkStatus = await fixture(html`
8 <sketch-network-status
9 connection="connected"
10 message="Connected to server"
11 ></sketch-network-status>
12 `);
13
14 const indicator = el.shadowRoot!.querySelector(".polling-indicator");
15 const statusText = el.shadowRoot!.querySelector(".status-text");
16
17 expect(indicator).to.exist;
18 expect(statusText).to.exist;
19 expect(indicator!.classList.contains("active")).to.be.true;
20 expect(statusText!.textContent).to.equal("Connected to server");
21 });
22
23 it("displays the correct connection status when disconnected", async () => {
24 const el: SketchNetworkStatus = await fixture(html`
25 <sketch-network-status
26 connection="disconnected"
27 message="Disconnected"
28 ></sketch-network-status>
29 `);
30
31 const indicator = el.shadowRoot!.querySelector(".polling-indicator");
32
33 expect(indicator).to.exist;
34 expect(indicator!.classList.contains("error")).to.be.true;
35 });
36
37
38 it("displays the correct connection status when disabled", async () => {
39 const el: SketchNetworkStatus = await fixture(html`
40 <sketch-network-status
41 connection="disabled"
42 message="Disabled"
43 ></sketch-network-status>
44 `);
45
46 const indicator = el.shadowRoot!.querySelector(".polling-indicator");
47
48 expect(indicator).to.exist;
49 expect(indicator!.classList.contains("error")).to.be.false;
50 expect(indicator!.classList.contains("active")).to.be.false;
51 });
52
53 it("displays error message when provided", async () => {
54 const errorMsg = "Connection error";
55 const el: SketchNetworkStatus = await fixture(html`
56 <sketch-network-status
57 connection="disconnected"
58 message="Disconnected"
59 error="${errorMsg}"
60 ></sketch-network-status>
61 `);
62
63 const statusText = el.shadowRoot!.querySelector(".status-text");
64
65 expect(statusText).to.exist;
66 expect(statusText!.textContent).to.equal(errorMsg);
67 });
68});