commodo-fields-date
Version:
A simple date field, used with the Commodo "withFields" higher order function.
43 lines (32 loc) • 1.34 kB
JavaScript
import { date } from "commodo-fields-date";
import { withFields, WithFieldsError } from "@commodo/fields";
import { compose } from "ramda";
const Model = compose(withFields({ exampleField: date() }))();
describe("field string test", () => {
test("should accept string (ISO 8601) values", () => {
const model = new Model();
const isoString1 = "2019-03-27T06:48:37.506Z";
const isoString2 = "2019-04-27T06:48:37.506Z";
model.exampleField = isoString1;
expect(model.exampleField.toISOString()).toEqual(isoString1);
model.exampleField = isoString2;
expect(model.exampleField.toISOString()).toEqual(isoString2);
model.exampleField = null;
expect(model.exampleField).toEqual(null);
model.exampleField = undefined;
expect(model.exampleField).not.toBeDefined();
});
[123, 0, 0.5, {}, [], false].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);
});
});
});