| Sean McCullough | 86b5686 | 2025-04-18 13:04:03 -0700 | [diff] [blame] | 1 | import { html, fixture, expect } from "@open-wc/testing"; |
| 2 | import "./sketch-network-status"; |
| 3 | import type { SketchNetworkStatus } from "./sketch-network-status"; |
| 4 | |
| 5 | describe("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 McCullough | 86b5686 | 2025-04-18 13:04:03 -0700 | [diff] [blame] | 37 | 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 | }); |