feat(electrobun): auto-updater + E2E tests + splash screen — ALL GAPS CLOSED
Auto-updater: - updater.ts: GitHub Releases API check, semver comparison, timestamp tracking - AdvancedSettings wired to real updater.check/getVersion RPC E2E testing (45 tests): - wdio.conf.js: WebDriverIO config for Electrobun (port 9761) - fixtures.ts: isolated temp dirs, demo data, git repo init - 4 spec files: smoke (13), settings (13), terminal (10), agent (9) Splash screen: - SplashScreen.svelte: animated gradient AGOR logo, version, loading dots - App.svelte: shows splash until all init promises resolve, 300ms fade-out
This commit is contained in:
parent
88206205fe
commit
4826b9dffa
8 changed files with 637 additions and 11 deletions
80
ui-electrobun/tests/e2e/specs/agent.test.ts
Normal file
80
ui-electrobun/tests/e2e/specs/agent.test.ts
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
/**
|
||||
* Agent pane tests — prompt input, send button, message area, status strip.
|
||||
*/
|
||||
|
||||
describe("Agent pane", () => {
|
||||
it("should show the prompt input area", async () => {
|
||||
const input = await $(".chat-input");
|
||||
if (await input.isExisting()) {
|
||||
expect(await input.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show the send button", async () => {
|
||||
const sendBtn = await $(".send-btn");
|
||||
if (await sendBtn.isExisting()) {
|
||||
expect(await sendBtn.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show the message area", async () => {
|
||||
const msgArea = await $(".agent-messages");
|
||||
if (await msgArea.isExisting()) {
|
||||
expect(await msgArea.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show the status strip", async () => {
|
||||
const statusStrip = await $(".agent-status");
|
||||
if (await statusStrip.isExisting()) {
|
||||
expect(await statusStrip.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show idle status by default", async () => {
|
||||
const statusText = await $(".agent-status .status-text");
|
||||
if (await statusText.isExisting()) {
|
||||
const text = await statusText.getText();
|
||||
expect(text.toLowerCase()).toContain("idle");
|
||||
}
|
||||
});
|
||||
|
||||
it("should accept text in the prompt input", async () => {
|
||||
const input = await $(".chat-input textarea");
|
||||
if (!(await input.isExisting())) {
|
||||
const altInput = await $(".chat-input input");
|
||||
if (await altInput.isExisting()) {
|
||||
await altInput.setValue("test prompt");
|
||||
const value = await altInput.getValue();
|
||||
expect(value).toContain("test");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
await input.setValue("test prompt");
|
||||
const value = await input.getValue();
|
||||
expect(value).toContain("test");
|
||||
});
|
||||
|
||||
it("should show provider indicator", async () => {
|
||||
const provider = await $(".provider-badge");
|
||||
if (await provider.isExisting()) {
|
||||
const text = await provider.getText();
|
||||
expect(text.length).toBeGreaterThan(0);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show cost display", async () => {
|
||||
const cost = await $(".agent-cost");
|
||||
if (await cost.isExisting()) {
|
||||
expect(await cost.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("should show model selector or label", async () => {
|
||||
const model = await $(".model-label");
|
||||
if (await model.isExisting()) {
|
||||
expect(await model.isDisplayed()).toBe(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue