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); | |
| }); | |
| }); | |