Skip to content

Commit b7af18c

Browse files
committed
test: OKO-108 refresh camera list on change tests
1 parent 22ee6c9 commit b7af18c

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

frontend/tests/App.test.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { fireEvent, render, waitFor } from "@testing-library/svelte";
22
import { describe, test, expect } from "vitest";
33
import Home from "../src/routes/Home.svelte";
44
import Cameras from "../src/routes/Cameras.svelte";
5-
import CameraAndVideos from "../src/lib/components/CameraAndVideos.svelte";
65
import Login from "../src/routes/Login.svelte";
76
import { get, Writable } from "svelte/store";
87
import { socket } from "../src/lib/stores/socketStore";
@@ -58,14 +57,29 @@ describe("Cameras page", () => {
5857
user.set(testUserAndCameras);
5958
socket.set(new WebSocket("ws://localhost:3000/api/ws"));
6059

61-
const { getByAltText } = render(CameraAndVideos, {
62-
cameraId: 2,
63-
cameraName: "Kitchen",
60+
const { queryByAltText, queryByText } = render(Cameras);
61+
62+
let cameraLink: HTMLElement | null = null;
63+
64+
await waitFor(() => {
65+
cameraLink = queryByText(testCameras[1].camera_name);
66+
expect(cameraLink).toBeInTheDocument();
67+
});
68+
69+
expect((cameraLink as unknown as HTMLButtonElement)?.tagName).toBe(
70+
"BUTTON",
71+
);
72+
await fireEvent.click(cameraLink as unknown as HTMLButtonElement);
73+
74+
let _liveFeedImg: HTMLElement | null = null;
75+
76+
await waitFor(() => {
77+
_liveFeedImg = queryByAltText(liveFeedAltText);
78+
expect(_liveFeedImg).toBeInTheDocument();
6479
});
6580

66-
const liveFeedImg = getByAltText(liveFeedAltText);
81+
const liveFeedImg = _liveFeedImg as unknown as HTMLImageElement;
6782

68-
expect(liveFeedImg).toBeInTheDocument();
6983
expect(liveFeedImg.getAttribute("src")).toBe(null);
7084

7185
let liveFeedImgSrc: string | null = null;

frontend/vitest-setup.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ export const handlers = [
203203
}),
204204
api_ws.addEventListener("connection", async ({ client }) => {
205205
console.log("WebSocket connection established");
206+
await timeoutPromise(100);
206207
// https://stackoverflow.com/a/16245768/19020549
207208
testImgContainer1.camera_id = 2;
208209
client.send(JSON.stringify(testImgContainer1));

0 commit comments

Comments
 (0)