Skip to content

Commit

Permalink
unit tests refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
mprzodala committed Oct 28, 2018
1 parent 8f74fe2 commit 59d7bc6
Showing 1 changed file with 42 additions and 77 deletions.
119 changes: 42 additions & 77 deletions src/Schema.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1015,119 +1015,84 @@ describe('Schema', () => {
});

describe('Should extend validators on field', () => {
it('when validators property not exist on field', () => {
let fooValidator;
let customValidator;
let schema;
let schemaWithValidators;
beforeEach(() => {
const customErrorMessage = 'foo error';
const fooValidator = {
fooValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
};

const schema = new Schema({
customValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
};
schema = new Schema({
property: {
type: String,
},
});

schema.extendFieldValidators('property', fooValidator);

expect(schema.getFieldValidators('property')).toEqual([fooValidator]);
});

it('when validators property exist on field', () => {
const customErrorMessage = 'foo error';
const customValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
};

const fooValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
};

const schema = new Schema({
schemaWithValidators = new Schema({
property: {
type: String,
validators: [customValidator],
},
});
});

it('when validators property not exist on field', () => {
schema.extendFieldValidators('property', fooValidator);
expect(schema.getFieldValidators('property')).toEqual([fooValidator]);
});

expect(schema.getFieldValidators('property')).toEqual([customValidator, fooValidator]);
it('when validators property exist on field', () => {
schemaWithValidators.extendFieldValidators('property', fooValidator);
expect(schemaWithValidators.getFieldValidators('property')).toEqual([customValidator, fooValidator]);
});

it('when validators property exist on field and validator has id', () => {
customValidator.id = 'customValidator';
fooValidator.id = 'fooValidator';
schemaWithValidators.extendFieldValidators('property', fooValidator);
expect(schemaWithValidators.getFieldValidators('property')).toEqual([customValidator, fooValidator]);
});
});
describe('Should not extend validators on field', () => {
let fooValidator;
let customValidator;
let schemaWithValidators;
beforeEach(() => {
const customErrorMessage = 'foo error';
const customValidator = {
fooValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
id: 'customValidator',
};

const fooValidator = {
customValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
id: 'fooValidator',
};

const schema = new Schema({
schemaWithValidators = new Schema({
property: {
type: String,
validators: [customValidator],
},
});

schema.extendFieldValidators('property', fooValidator);

expect(schema.getFieldValidators('property')).toEqual([customValidator, fooValidator]);
});
});
describe('Should not extend validators on field', () => {
it('when validator exist in validators property', () => {
const customErrorMessage = 'foo error';
const customValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
};

const schema = new Schema({
property: {
type: String,
validators: [customValidator],
},
});

schema.setFieldValidator = jest.fn();
schema.extendFieldValidators('property', customValidator);

expect(schema.setFieldValidator).not.toBeCalled();
it('when validator exist in validators property', () => {
schemaWithValidators.setFieldValidator = jest.fn();
schemaWithValidators.extendFieldValidators('property', customValidator);
expect(schemaWithValidators.setFieldValidator).not.toBeCalled();
});

it('when validator with the same id exist in validators property', () => {
const customErrorMessage = 'foo error';
const customValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
id: 'customValidator',
};

const fooValidator = {
validator: () => false,
errorMessage: () => customErrorMessage,
id: 'customValidator',
};

const schema = new Schema({
property: {
type: String,
validators: [customValidator],
},
});
schema.setFieldValidator = jest.fn();
schema.extendFieldValidators('property', fooValidator);

expect(schema.setFieldValidator).not.toBeCalled();
customValidator.id = 'customValidator';
fooValidator.id = 'customValidator';
schemaWithValidators.setFieldValidator = jest.fn();
schemaWithValidators.extendFieldValidators('property', fooValidator);
expect(schemaWithValidators.setFieldValidator).not.toBeCalled();
});
});
});
Expand Down

0 comments on commit 59d7bc6

Please sign in to comment.