agent-orchestrator/ui-electrobun/tests/e2e/specs/comms.test.ts
Hibryda dd1d692e7b test(electrobun): expand E2E suite — 75 new tests (120 total, 14 spec files)
New specs: search, files, comms, tasks, theme, groups, keyboard,
notifications, diagnostics, splash. All under 300 lines, CSS class
selectors matching actual components, display toggle aware.
2026-03-22 05:01:21 +01:00

85 lines
2.5 KiB
TypeScript

/**
* Communications tab tests — channels, DMs, message area, send form.
*/
describe("Communications tab", () => {
it("should render the comms tab container", async () => {
const comms = await $(".comms-tab");
if (await comms.isExisting()) {
expect(await comms.isDisplayed()).toBe(true);
}
});
it("should show mode toggle bar with Channels and DMs", async () => {
const modeBar = await $(".comms-mode-bar");
if (!(await modeBar.isExisting())) return;
const buttons = await $$(".mode-btn");
expect(buttons.length).toBe(2);
const texts = await Promise.all(buttons.map((b) => b.getText()));
expect(texts).toContain("Channels");
expect(texts).toContain("DMs");
});
it("should highlight the active mode button", async () => {
const activeBtn = await $(".mode-btn.active");
if (await activeBtn.isExisting()) {
expect(await activeBtn.isDisplayed()).toBe(true);
}
});
it("should show the comms sidebar", async () => {
const sidebar = await $(".comms-sidebar");
if (await sidebar.isExisting()) {
expect(await sidebar.isDisplayed()).toBe(true);
}
});
it("should show channel list with hash prefix", async () => {
const hashes = await $$(".ch-hash");
if (hashes.length > 0) {
const text = await hashes[0].getText();
expect(text).toBe("#");
}
});
it("should show message area", async () => {
const messages = await $(".comms-messages");
if (await messages.isExisting()) {
expect(await messages.isDisplayed()).toBe(true);
}
});
it("should show the message input bar", async () => {
const inputBar = await $(".msg-input-bar");
if (await inputBar.isExisting()) {
expect(await inputBar.isDisplayed()).toBe(true);
}
});
it("should have a send button that is disabled when input is empty", async () => {
const sendBtn = await $(".msg-send-btn");
if (!(await sendBtn.isExisting())) return;
const disabled = await sendBtn.getAttribute("disabled");
// When input is empty, send button should be disabled
expect(disabled).not.toBeNull();
});
it("should switch to DMs mode on DMs button click", async () => {
const buttons = await $$(".mode-btn");
if (buttons.length < 2) return;
// Click DMs button
await buttons[1].click();
await browser.pause(300);
const cls = await buttons[1].getAttribute("class");
expect(cls).toContain("active");
// Switch back to channels for other tests
await buttons[0].click();
await browser.pause(300);
});
});