Files
claw3d/tests/unit/browserPreview.test.ts
Luke The Dev 4fa4f13558 First Release of Claw3D (#11)
Co-authored-by: iamlukethedev <iamlukethedev@users.noreply.github.com>
2026-03-19 23:14:04 -05:00

32 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
normalizeBrowserPreviewUrl,
resolveBrowserControlBaseUrl,
shouldPreferBrowserScreenshot,
} from "@/lib/office/browserPreview";
describe("browserPreview helpers", () => {
it("prefers screenshots for frame-blocked social sites", () => {
expect(shouldPreferBrowserScreenshot("https://x.com/example-user")).toBe(true);
expect(shouldPreferBrowserScreenshot("https://www.linkedin.com/in/example")).toBe(true);
expect(shouldPreferBrowserScreenshot("https://example.com/dashboard")).toBe(false);
});
it("derives the local browser control service url from the gateway websocket url", () => {
expect(resolveBrowserControlBaseUrl("ws://localhost:18789")).toBe("http://localhost:18791");
expect(resolveBrowserControlBaseUrl("ws://0.0.0.0:19000")).toBe("http://127.0.0.1:19002");
expect(resolveBrowserControlBaseUrl("wss://localhost:443")).toBe("https://localhost:445");
});
it("ignores non-local gateway urls", () => {
expect(resolveBrowserControlBaseUrl("ws://10.0.0.42:18789")).toBeNull();
});
it("normalizes hash-only browser url differences", () => {
expect(
normalizeBrowserPreviewUrl("https://example.com/dashboard#section-a"),
).toBe("https://example.com/dashboard");
});
});