IKHSAN
EN Read in EnglishID

homeio

Publik

Fork dari doctor-io/homeio

Branch
main
Commit terakhir
958d74616 Oktober 2026

route.test.ts

Buka raw
import { describe, expect, it, vi } from "vitest";

vi.mock("@/lib/server/env", () => ({
  serverEnv: {
    SSE_HEARTBEAT_MS: 60_000,
  },
}));

vi.mock("@/lib/server/modules/network/events", () => ({
  getLatestNetworkEvent: vi.fn(),
  subscribeToNetworkEvents: vi.fn(),
}));

import { GET } from "@/app/api/v1/network/events/stream/route";
import {
  getLatestNetworkEvent,
  subscribeToNetworkEvents,
} from "@/lib/server/modules/network/events";

describe("GET /api/v1/network/events/stream", () => {
  it("streams network events as SSE", async () => {
    vi.mocked(getLatestNetworkEvent).mockReturnValueOnce({
      type: "network.connection.changed",
      timestamp: "2026-02-23T00:00:01.000Z",
      iface: "wlan0",
      ssid: "HomeNet",
      connected: true,
    });
    vi.mocked(subscribeToNetworkEvents).mockImplementation(() => () => undefined);

    const response = await GET(new Request("http://localhost"));

    expect(response.status).toBe(200);
    expect(response.headers.get("Content-Type")).toBe("text/event-stream");

    const reader = response.body?.getReader();
    const chunk = await reader?.read();
    const text = new TextDecoder().decode(chunk?.value ?? new Uint8Array());

    expect(text).toContain("event: network.connection.changed");
    await reader?.cancel();
  });
});
byte
1.313
baris
44
Jenis
ts
Commit terakhir
16 Oktober 2026