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(); }); });