mirror of
https://github.com/OpenHands/OpenHands.git
synced 2026-03-22 13:47:19 +08:00
62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
import { transformVSCodeUrl } from "#/utils/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);
|
|
});
|
|
});
|