Spaces:
Build error
Build error
File size: 1,726 Bytes
b59aa07 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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);
});
});
|