OpenHands / frontend /src /utils /__tests__ /vscode-url-helper.test.ts
Backup-bdg's picture
Upload 565 files
b59aa07 verified
raw
history blame
1.73 kB
import { describe, it, expect, beforeEach, afterEach } from "vitest";
import { transformVSCodeUrl } from "../vscode-url-helper";
describe("transformVSCodeUrl", () => {
const originalWindowLocation = window.location;
beforeEach(() => {
// Mock window.location
Object.defineProperty(window, "location", {
value: {
hostname: "example.com",
},
writable: true,
});
});
afterEach(() => {
// Restore window.location
Object.defineProperty(window, "location", {
value: originalWindowLocation,
writable: true,
});
});
it("should return null if input is null", () => {
expect(transformVSCodeUrl(null)).toBeNull();
});
it("should replace localhost with current hostname when they differ", () => {
const input = "http://localhost:8080/?tkn=abc123&folder=/workspace";
const expected = "http://example.com:8080/?tkn=abc123&folder=/workspace";
expect(transformVSCodeUrl(input)).toBe(expected);
});
it("should not modify URL if hostname is not localhost", () => {
const input = "http://otherhost:8080/?tkn=abc123&folder=/workspace";
expect(transformVSCodeUrl(input)).toBe(input);
});
it("should not modify URL if current hostname is also localhost", () => {
// Change the mocked hostname to localhost
Object.defineProperty(window, "location", {
value: {
hostname: "localhost",
},
writable: true,
});
const input = "http://localhost:8080/?tkn=abc123&folder=/workspace";
expect(transformVSCodeUrl(input)).toBe(input);
});
it("should handle invalid URLs gracefully", () => {
const input = "not-a-valid-url";
expect(transformVSCodeUrl(input)).toBe(input);
});
});