UNPKG

commodo-fields-object

Version:

A simple object field, used with the Commodo "withFields" higher order function.

41 lines (30 loc) 1.17 kB
import { object } from "commodo-fields-object"; import { withFields, WithFieldsError } from "@commodo/fields"; import { compose } from "ramda"; const Model = compose(withFields({ exampleField: object() }))(); describe("field string test", () => { test("should accept any object values", () => { const model = new Model(); model.exampleField = {}; expect(model.exampleField).toEqual({}); model.exampleField = []; expect(model.exampleField).toEqual([]); model.exampleField = null; expect(model.exampleField).toEqual(null); model.exampleField = undefined; expect(model.exampleField).not.toBeDefined(); }); [123, 0, 0.5, "", false, true].forEach(value => { test(`shouldn't accept ${typeof value}`, async () => { const model = new Model(); let error = null; try { model.exampleField = value; } catch (e) { error = e; } expect(error).toBeInstanceOf(WithFieldsError); expect(error.code).toEqual(WithFieldsError.FIELD_DATA_TYPE_ERROR); }); }); });