phantom-marmiton/src/marmiton/__tests__/validate.test.ts
2022-01-08 00:07:09 +01:00

115 lines
3.1 KiB
TypeScript

import { validateMarmitonSearchInput } from "../validate";
console.log = () => undefined;
describe("validateMarmitonSearchInput", () => {
it("should return true if argument contains query", () => {
expect(
validateMarmitonSearchInput({
query: "query",
})
).toBeTruthy();
});
it("should return true if argument contains dt", () => {
expect(
validateMarmitonSearchInput({
query: "query",
dt: "entree",
})
).toBeTruthy();
expect(
validateMarmitonSearchInput({
query: "query",
dt: ["entree", "dessert"],
})
).toBeTruthy();
});
it("should return true if argument contains page", () => {
expect(
validateMarmitonSearchInput({
query: "query",
page: 1,
})
).toBeTruthy();
expect(
validateMarmitonSearchInput({
query: "query",
page: 32,
})
).toBeTruthy();
});
it("should return true if argument contains type", () => {
expect(
validateMarmitonSearchInput({
query: "query",
type: "season",
})
).toBeTruthy();
expect(
validateMarmitonSearchInput({
query: "query",
type: ["season", "recipe"],
})
).toBeTruthy();
});
it("should return true if argument contains all options", () => {
expect(
validateMarmitonSearchInput({
query: "query",
type: "recipe",
dt: "entree",
page: 1,
})
).toBeTruthy();
expect(
validateMarmitonSearchInput({
query: "query",
type: ["season", "recipe"],
dt: ["entree", "dessert"],
page: 54,
})
).toBeTruthy();
});
it("should return false if argument does not contains query", () => {
expect(validateMarmitonSearchInput({})).toBeFalsy();
});
it("should return false if argument contains wrong dt", () => {
expect(validateMarmitonSearchInput({ query: "query", dt: 1 })).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", dt: "1" })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", dt: false })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", dt: null })
).toBeFalsy();
});
it("should return false if argument contains wrong type", () => {
expect(
validateMarmitonSearchInput({ query: "query", type: 1 })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", type: "1" })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", type: false })
).toBeFalsy();
});
it("should return false if argument contains wrong page", () => {
expect(
validateMarmitonSearchInput({ query: "query", page: -1 })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", page: "-1" })
).toBeFalsy();
expect(
validateMarmitonSearchInput({ query: "query", page: false })
).toBeFalsy();
});
it("should return false if argument contains unknown property", () => {
expect(
validateMarmitonSearchInput({ query: "query", test: -1 })
).toBeFalsy();
});
});