Skip to content

Commit

Permalink
✅ Add tests for Required validation
Browse files Browse the repository at this point in the history
  • Loading branch information
Sam Richard committed Aug 9, 2016
1 parent feb6dc0 commit 761f35e
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 10 deletions.
14 changes: 7 additions & 7 deletions tests/fixtures/content-types/baz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ attributes:
inputs:
text:
settings:
empty: false
empty: true
- type: text
name: Input required save
id: input-required-save
Expand All @@ -20,7 +20,7 @@ attributes:
text:
required: 'save'
settings:
empty: false
empty: true
- type: text
name: Plugin required publish
id: plugin-required-publish
Expand All @@ -29,7 +29,7 @@ attributes:
inputs:
text:
settings:
empty: false
empty: true
- type: text
name: Input required publish
id: input-required-publish
Expand All @@ -38,7 +38,7 @@ attributes:
text:
required: 'publish'
settings:
empty: false
empty: true
- type: text
name: Plugin required bad level
id: plugin-required-bad-level
Expand All @@ -47,7 +47,7 @@ attributes:
inputs:
text:
settings:
empty: false
empty: true
- type: text
name: Input required bad level
id: input-required-bad-level
Expand All @@ -56,7 +56,7 @@ attributes:
text:
required: 'smublish'
settings:
empty: false
empty: true
- type: quote
name: MULTI Plugin required save
id: multi-plugin-required-save
Expand All @@ -70,7 +70,7 @@ attributes:
author:
required: 'publish'
settings:
empty: false
empty: true
- type: selects-related
name: Two related select elements
id: input-related-selects
Expand Down
53 changes: 50 additions & 3 deletions tests/validate.js
Original file line number Diff line number Diff line change
Expand Up @@ -259,20 +259,67 @@ test('Required - Pass', t => {
});
});

test('Required - Fail', t => {
test('Required Publish with Empty Save', t => {
return types.only('baz').then(ct => {
const input = {
'plugin-required-save--text': '',
'input-required-save--text': '',
};

const expected = {
'plugin-required-save--text': 'Field cannot be left blank!',
'input-required-save--text': 'Field cannot be left blank!',
'plugin-required-save--text': 'Field is required to be saved!',
'input-required-save--text': 'Field is required to be saved!',
};

const result = validation(input, ct);

t.deepEqual(result, expected, 'Returns an object of inputs that have failed');
});
});

test('Required Publish with Empty Publish and Save', t => {
return types.only('baz').then(ct => {
const input = {
'plugin-required-save--text': '',
'input-required-publish--text': '',
};

const expected = {
'plugin-required-save--text': 'Field is required to be saved!',
'input-required-publish--text': 'Field is required to be published!',
};

const result = validation(input, ct);

t.deepEqual(result, expected, 'Returns an object of inputs that have failed');
});
});


test('Required Save with Empty Publish', t => {
return types.only('baz').then(ct => {
const input = {
'plugin-required-publish--text': '',
'input-required-publish--text': '',
};

const result = validation(input, ct, 'save');

t.true(result, 'No errors for just publish on save');
});
});

test('Validation fails if required check is wrong', t => {
return types.only('baz').then(ct => {
const input = {
'plugin-required-publish--text': '',
'input-required-publish--text': '',
};

validation(input, ct, 'foo');

t.fail();
}).catch(e => {
t.is(e.message, 'Parameter `check` must either be `save` or `publish`', 'Errors out as expected');
});
});

0 comments on commit 761f35e

Please sign in to comment.