Spaces:
Build error
Build error
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); | |
}); | |
}); | |