blob: 04e3386a0004dbd1710b3bf4b4254bd0f9786436 [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
Sean McCullough86b56862025-04-18 13:04:03 -070037 it("displays the correct connection status when disabled", async () => {
38 const el: SketchNetworkStatus = await fixture(html`
39 <sketch-network-status
40 connection="disabled"
41 message="Disabled"
42 ></sketch-network-status>
43 `);
44
45 const indicator = el.shadowRoot!.querySelector(".polling-indicator");
46
47 expect(indicator).to.exist;
48 expect(indicator!.classList.contains("error")).to.be.false;
49 expect(indicator!.classList.contains("active")).to.be.false;
50 });
51
52 it("displays error message when provided", async () => {
53 const errorMsg = "Connection error";
54 const el: SketchNetworkStatus = await fixture(html`
55 <sketch-network-status
56 connection="disconnected"
57 message="Disconnected"
58 error="${errorMsg}"
59 ></sketch-network-status>
60 `);
61
62 const statusText = el.shadowRoot!.querySelector(".status-text");
63
64 expect(statusText).to.exist;
65 expect(statusText!.textContent).to.equal(errorMsg);
66 });
67});