1
0
Fork 0
mirror of synced 2024-08-06 13:48:14 +12:00

Add tests

This commit is contained in:
Adria Navarro 2024-05-27 14:10:20 +02:00
parent 3cf230e3af
commit ae36a79f8c
2 changed files with 36 additions and 1 deletions

View file

@ -45,7 +45,7 @@ export function isRequired(constraints: FieldConstraints | undefined) {
const isRequired =
!!constraints &&
((typeof constraints.presence !== "boolean" &&
!constraints.presence?.allowEmpty) ||
constraints.presence?.allowEmpty === false) ||
constraints.presence === true)
return isRequired
}

View file

@ -0,0 +1,35 @@
import { isRequired } from "../schema"
describe("schema utilities", () => {
describe("isRequired", () => {
it("not required by default", () => {
const result = isRequired(undefined)
expect(result).toBe(false)
})
it("required when presence is true", () => {
const result = isRequired({ presence: true })
expect(result).toBe(true)
})
it("not required when presence is false", () => {
const result = isRequired({ presence: false })
expect(result).toBe(false)
})
it("not required when presence is an empty object", () => {
const result = isRequired({ presence: {} })
expect(result).toBe(false)
})
it("not required when allowEmpty is true", () => {
const result = isRequired({ presence: { allowEmpty: true } })
expect(result).toBe(false)
})
it("required when allowEmpty is false", () => {
const result = isRequired({ presence: { allowEmpty: false } })
expect(result).toBe(true)
})
})
})