From ae36a79f8cbd7d7ddf1d1c32da97000d3874e98d Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 27 May 2024 14:10:20 +0200 Subject: [PATCH] Add tests --- packages/server/src/utilities/schema.ts | 2 +- .../server/src/utilities/tests/schema.spec.ts | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 packages/server/src/utilities/tests/schema.spec.ts diff --git a/packages/server/src/utilities/schema.ts b/packages/server/src/utilities/schema.ts index 421d3ef8f2..7fea417d5a 100644 --- a/packages/server/src/utilities/schema.ts +++ b/packages/server/src/utilities/schema.ts @@ -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 } diff --git a/packages/server/src/utilities/tests/schema.spec.ts b/packages/server/src/utilities/tests/schema.spec.ts new file mode 100644 index 0000000000..664e95a42a --- /dev/null +++ b/packages/server/src/utilities/tests/schema.spec.ts @@ -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) + }) + }) +})