Files
cozsweet-frontend-nextjs/src/data/services/api/__tests__/api_path.test.ts
T
admin 19d36ed5bf
CI / Quality and Bundle Budgets (push) Has been cancelled
refactor(data): establish API contract guardrails
2026-07-16 20:09:30 +08:00

25 lines
770 B
TypeScript

import { describe, expect, it } from "vitest";
import apiContract from "../api_contract.json";
import { ApiPath } from "../api_path";
describe("ApiPath contract source", () => {
it("uses the shared contract path for every static operation", () => {
const staticOperations = Object.entries(apiContract).filter(
([operationId]) => operationId !== "privateRoomAlbumUnlock",
);
for (const [operationId, operation] of staticOperations) {
expect(ApiPath[operationId as keyof typeof ApiPath]).toBe(
operation.path,
);
}
});
it("fills and encodes the private album path parameter", () => {
expect(ApiPath.privateRoomAlbumUnlock("album/id 1")).toBe(
"/api/private-room/albums/album%2Fid%201/unlock",
);
});
});