rallly/packages/utils/src/absolute-url.test.ts
2024-11-02 11:50:09 +00:00

51 lines
1.6 KiB
TypeScript

import { absoluteUrl } from "./absolute-url";
describe("absoluteUrl", () => {
describe("when NEXT_PUBLIC_BASE_URL is set", () => {
beforeAll(() => {
process.env.NEXT_PUBLIC_BASE_URL = "https://example.com";
});
afterAll(() => {
delete process.env.NEXT_PUBLIC_BASE_URL;
});
it("should return the value of NEXT_PUBLIC_BASE_URL", () => {
expect(absoluteUrl()).toBe("https://example.com");
});
it("should return the correct absolute URL with query params", () => {
expect(absoluteUrl("/", { test: "test" })).toBe(
"https://example.com/?test=test",
);
});
it("should return the correct absolute URL with a subpath and query params", () => {
expect(absoluteUrl("/test", { test: "test" })).toBe(
"https://example.com/test?test=test",
);
});
});
describe("when NEXT_PUBLIC_BASE_URL is not set", () => {
it("should return the correct absolute URL with a subpath and query params", () => {
expect(absoluteUrl("/test", { test: "test" })).toBe(
"http://localhost:3000/test?test=test",
);
});
describe("when NEXT_PUBLIC_VERCEL_URL is set", () => {
beforeAll(() => {
process.env.NEXT_PUBLIC_VERCEL_URL = "example.vercel.com";
});
afterAll(() => {
delete process.env.NEXT_PUBLIC_VERCEL_URL;
});
it("should return the correct absolute URL with a subpath and query params", () => {
expect(absoluteUrl("/test", { test: "test" })).toBe(
"https://example.vercel.com/test?test=test",
);
});
});
});
});