UNPKG

saldo

Version:

Portuguese salary calculator library

59 lines (58 loc) 3.62 kB
import { validateNumberOfHolders, validateMarriedAndNumberOfHolders, validateDependents, } from "../dependent-worker/validators"; import { describe, it, expect } from "vitest"; describe("Dependent Worker Validators", () => { describe("validateNumberOfHolders", () => { it.each([null, undefined, 1, 2])("should not throw for %p", (numberOfHolders) => { expect(() => validateNumberOfHolders(numberOfHolders)).not.toThrow(); }); it.each([0, 3, 1.5])("should throw for %p", (numberOfHolders) => { expect(() => validateNumberOfHolders(numberOfHolders)).toThrow("'numberOfHolders' must be null, undefined, 1 or 2"); }); }); describe("validateMarriedAndNumberOfHolders", () => { it("should not throw if not married and numberOfHolders is null", () => { expect(() => validateMarriedAndNumberOfHolders(false, null)).not.toThrow(); }); it("should not throw if not married and numberOfHolders is undefined", () => { expect(() => validateMarriedAndNumberOfHolders(false, undefined)).not.toThrow(); }); it("should not throw if not married and numberOfHolders is 1", () => { expect(() => validateMarriedAndNumberOfHolders(false, 1)).not.toThrow(); }); it("should not throw if married and numberOfHolders is 1", () => { expect(() => validateMarriedAndNumberOfHolders(true, 1)).not.toThrow(); }); it("should not throw if married and numberOfHolders is 2", () => { expect(() => validateMarriedAndNumberOfHolders(true, 2)).not.toThrow(); }); it("should throw if married and numberOfHolders is null", () => { expect(() => validateMarriedAndNumberOfHolders(true, null)).toThrow("'numberOfHolders' is required for married workers"); }); it("should throw if married and numberOfHolders is undefined", () => { expect(() => validateMarriedAndNumberOfHolders(true, undefined)).toThrow("'numberOfHolders' is required for married workers"); }); }); describe("validateDependents", () => { it("should not throw if numberOfDependentsDisabled is null", () => { expect(() => validateDependents(1, null)).not.toThrow(); }); it("should not throw if numberOfDependentsDisabled is undefined", () => { expect(() => validateDependents(1, undefined)).not.toThrow(); }); it("should not throw if numberOfDependentsDisabled is less than numberOfDependents", () => { expect(() => validateDependents(2, 1)).not.toThrow(); }); it("should not throw if numberOfDependentsDisabled is equal to numberOfDependents", () => { expect(() => validateDependents(1, 1)).not.toThrow(); }); it("should throw if numberOfDependents is null and numberOfDependentsDisabled is provided", () => { expect(() => validateDependents(null, 1)).toThrow("'numberOfDependents' is required when 'numberOfDependentsDisabled' is provided"); }); it("should throw if numberOfDependents is undefined and numberOfDependentsDisabled is provided", () => { expect(() => validateDependents(undefined, 1)).toThrow("'numberOfDependents' is required when 'numberOfDependentsDisabled' is provided"); }); it("should throw if numberOfDependentsDisabled is greater than numberOfDependents", () => { expect(() => validateDependents(1, 2)).toThrow("'numberOfDependentsDisabled' must be less than or equal to 'numberOfDependents'"); }); }); });