55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
import { describe, expect, it } from "vitest";
|
|
import { createApiProxyOptions } from "../../vite.config.js";
|
|
|
|
describe("Vite API proxy", () => {
|
|
it("forwards local /api requests to the remote stable API by default", () => {
|
|
const options = createApiProxyOptions({});
|
|
|
|
expect(options.target).toBe("https://api-v2.truckwash.io");
|
|
expect(options.changeOrigin).toBe(true);
|
|
expect(options.secure).toBe(true);
|
|
expect(options.rewrite("/api/ping")).toBe("/master/api/ping");
|
|
expect(options.rewrite("/api/release/runtime")).toBe("/master/api/release/runtime");
|
|
expect(options.rewrite("/api")).toBe("/master/api");
|
|
});
|
|
|
|
it("allows a local PHP API override", () => {
|
|
const options = createApiProxyOptions({
|
|
VITE_API_PROXY_TARGET: "http://localhost",
|
|
});
|
|
|
|
expect(options.target).toBe("http://localhost");
|
|
expect(options.rewrite("/api/ping")).toBe("/ping");
|
|
});
|
|
|
|
it("allows overriding the remote gateway base path", () => {
|
|
const options = createApiProxyOptions({
|
|
VITE_API_PROXY_BASE_PATH: "/canary/api",
|
|
});
|
|
|
|
expect(options.target).toBe("https://api-v2.truckwash.io");
|
|
expect(options.rewrite("/api/ping")).toBe("/canary/api/ping");
|
|
expect(options.rewrite("/api")).toBe("/canary/api");
|
|
});
|
|
|
|
it("allows disabling TLS verification for explicitly trusted local gateways", () => {
|
|
const options = createApiProxyOptions({
|
|
VITE_API_PROXY_TARGET: "https://local-api.test",
|
|
VITE_API_PROXY_SECURE: "false",
|
|
});
|
|
|
|
expect(options.target).toBe("https://local-api.test");
|
|
expect(options.secure).toBe(false);
|
|
});
|
|
|
|
it("allows disabling prefix stripping for compatible local gateways", () => {
|
|
const options = createApiProxyOptions({
|
|
VITE_API_PROXY_TARGET: "http://localhost",
|
|
VITE_API_PROXY_STRIP_PREFIX: "false",
|
|
});
|
|
|
|
expect(options.target).toBe("http://localhost");
|
|
expect(options.rewrite).toBeUndefined();
|
|
});
|
|
});
|