@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
26 lines (25 loc) • 1.01 kB
JavaScript
import { assert } from '@sprucelabs/test-utils';
import { validationErrorAssert } from '../index.js';
import AbstractSchemaTest from '../AbstractSchemaTest.js';
import SchemaEntityFactory from '../factories/SchemaEntityFactory.js';
export default class AbstractDateFieldTest extends AbstractSchemaTest {
static async beforeEach() {
await super.beforeEach();
this.entity = SchemaEntityFactory.Entity(this.schema);
}
static canSetDateAsDateObject() {
//@ts-ignore
this.entity.set('optionalBirthday', new Date());
}
static failsValidationIfPassedString(fieldName, value) {
const err = assert.doesThrow(() =>
//@ts-ignore
this.entity.set(fieldName, value));
validationErrorAssert.assertError(err, { invalid: [fieldName] });
}
static honorsRequired() {
assert.isFalse(this.entity.isValid());
this.entity.set('requiredBirthday', new Date().getTime());
assert.isTrue(this.entity.isValid());
}
}