27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { isGetUnder } from "./query-predicate";
|
|
|
|
describe("isGetUnder", () => {
|
|
it("matches the root itself and nested paths for get queries only", () => {
|
|
const predicate = isGetUnder(["/api/v1/bank-cards"]);
|
|
|
|
expect(predicate(["get", "/api/v1/bank-cards"])).toBe(true);
|
|
expect(predicate(["get", "/api/v1/bank-cards/{id}"])).toBe(true);
|
|
expect(predicate(["get", "/api/v1/bank-cards"])).toBe(true);
|
|
expect(predicate(["get", "/api/v1/bank-cardsx"])).toBe(false);
|
|
expect(predicate(["post", "/api/v1/bank-cards"])).toBe(false);
|
|
expect(predicate(["get", "/api/v1/other"])).toBe(false);
|
|
});
|
|
|
|
it("checks every root and tolerates init and non-string parts", () => {
|
|
const predicate = isGetUnder(["/api/v1/stocks", "/api/v1/bonds"]);
|
|
|
|
expect(predicate(["get", "/api/v1/stocks/{uid}/quote", { params: {} }]))
|
|
.toBe(true);
|
|
expect(predicate(["get", "/api/v1/bonds"])).toBe(true);
|
|
expect(predicate([undefined, "/api/v1/stocks"])).toBe(false);
|
|
expect(predicate(["get", undefined])).toBe(false);
|
|
});
|
|
});
|