test: merge chat helper render tests

This commit is contained in:
Peter Steinberger
2026-04-17 19:51:43 +01:00
parent 7c862da6a1
commit 4dd999274b
2 changed files with 51 additions and 55 deletions

View File

@@ -1,13 +1,14 @@
/* @vitest-environment jsdom */
import { render } from "lit";
import { afterEach, describe, expect, it } from "vitest";
import { afterEach, describe, expect, it, vi } from "vitest";
import type { GatewaySessionRow } from "../types.ts";
import {
getContextNoticeViewModel,
renderContextNotice,
resetContextNoticeThemeCacheForTest,
} from "./context-notice.ts";
import { renderSideResult } from "./side-result-render.ts";
describe("context notice", () => {
afterEach(() => {
@@ -90,3 +91,52 @@ describe("context notice", () => {
).toBeNull();
});
});
describe("side result render", () => {
it("renders, dismisses, and styles BTW side results outside transcript history", () => {
const container = document.createElement("div");
const onDismissSideResult = vi.fn();
render(
renderSideResult(
{
kind: "btw",
runId: "btw-run-1",
sessionKey: "main",
question: "what changed?",
text: "The web UI now renders **BTW** separately.",
isError: false,
ts: 2,
},
onDismissSideResult,
),
container,
);
expect(container.querySelector(".chat-side-result")).not.toBeNull();
expect(container.textContent).toContain("BTW");
expect(container.textContent).toContain("what changed?");
expect(container.textContent).toContain("Not saved to chat history");
expect(container.querySelectorAll(".chat-side-result")).toHaveLength(1);
const button = container.querySelector<HTMLButtonElement>(".chat-side-result__dismiss");
expect(button).not.toBeNull();
button?.click();
expect(onDismissSideResult).toHaveBeenCalledTimes(1);
render(
renderSideResult({
kind: "btw",
runId: "btw-run-3",
sessionKey: "main",
question: "what failed?",
text: "The side question could not be answered.",
isError: true,
ts: 4,
}),
container,
);
expect(container.querySelector(".chat-side-result--error")).not.toBeNull();
});
});

View File

@@ -1,54 +0,0 @@
/* @vitest-environment jsdom */
import { render } from "lit";
import { describe, expect, it, vi } from "vitest";
import { renderSideResult } from "./side-result-render.ts";
describe("side result render", () => {
it("renders, dismisses, and styles BTW side results outside transcript history", () => {
const container = document.createElement("div");
const onDismissSideResult = vi.fn();
render(
renderSideResult(
{
kind: "btw",
runId: "btw-run-1",
sessionKey: "main",
question: "what changed?",
text: "The web UI now renders **BTW** separately.",
isError: false,
ts: 2,
},
onDismissSideResult,
),
container,
);
expect(container.querySelector(".chat-side-result")).not.toBeNull();
expect(container.textContent).toContain("BTW");
expect(container.textContent).toContain("what changed?");
expect(container.textContent).toContain("Not saved to chat history");
expect(container.querySelectorAll(".chat-side-result")).toHaveLength(1);
const button = container.querySelector<HTMLButtonElement>(".chat-side-result__dismiss");
expect(button).not.toBeNull();
button?.click();
expect(onDismissSideResult).toHaveBeenCalledTimes(1);
render(
renderSideResult({
kind: "btw",
runId: "btw-run-3",
sessionKey: "main",
question: "what failed?",
text: "The side question could not be answered.",
isError: true,
ts: 4,
}),
container,
);
expect(container.querySelector(".chat-side-result--error")).not.toBeNull();
});
});