Add e2e tests for addItems: false

This commit is contained in:
Josh Johnson 2018-10-21 19:26:19 +01:00
parent 4193422cf6
commit 54c026ec61
5 changed files with 128 additions and 11 deletions

View file

@ -304,11 +304,59 @@ describe('Choices - select multiple', () => {
}); });
}); });
describe('adding items disabled', () => {
/*
{
addItems: false,
}
*/
beforeEach(() => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices')
.click();
});
it('disables the search input', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__input--cloned')
.should('be.disabled');
});
describe('on click', () => {
it('opens choice dropdown', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--dropdown')
.should('be.visible');
});
});
describe('attempting to select choice', () => {
let selectedChoice;
it('does not select choice', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--dropdown .choices__item')
.last()
.then($lastChoice => {
selectedChoice = $lastChoice;
})
.click();
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--multiple .choices__item')
.last()
.should($item => {
expect($item.text()).to.not.contain(selectedChoice.text());
});
});
});
});
describe('selection limit', () => { describe('selection limit', () => {
/* /*
{ {
maxItemCount: 5, maxItemCount: 5,
}; }
*/ */
const selectionLimit = 5; const selectionLimit = 5;
@ -344,7 +392,7 @@ describe('Choices - select multiple', () => {
{ {
prependValue: 'before-', prependValue: 'before-',
appendValue: '-after', appendValue: '-after',
}; }
*/ */
let selectedChoiceText; let selectedChoiceText;
@ -363,10 +411,6 @@ describe('Choices - select multiple', () => {
.click(); .click();
}); });
it('works', () => {
expect(true).to.equal(true);
});
it('prepends and appends value to inputted value', () => { it('prepends and appends value to inputted value', () => {
cy.get('[data-test-hook=prepend-append]') cy.get('[data-test-hook=prepend-append]')
.find('.choices__list--multiple .choices__item') .find('.choices__list--multiple .choices__item')
@ -395,7 +439,7 @@ describe('Choices - select multiple', () => {
/* /*
{ {
renderChoiceLimit: 1, renderChoiceLimit: 1,
}; }
*/ */
it('only displays given number of choices in the dropdown', () => { it('only displays given number of choices in the dropdown', () => {
cy.get('[data-test-hook=render-choice-limit]') cy.get('[data-test-hook=render-choice-limit]')
@ -409,9 +453,8 @@ describe('Choices - select multiple', () => {
/* /*
{ {
searchFloor: 10, searchFloor: 10,
}; }
*/ */
describe('on input', () => { describe('on input', () => {
describe('search floor not reached', () => { describe('search floor not reached', () => {
it('displays choices not filtered by inputted value', () => { it('displays choices not filtered by inputted value', () => {

View file

@ -252,6 +252,54 @@ describe('Choices - select one', () => {
}); });
}); });
describe('adding items disabled', () => {
/*
{
addItems: false,
}
*/
beforeEach(() => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices')
.click();
});
it('disables the search input', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__input--cloned')
.should('be.disabled');
});
describe('on click', () => {
it('opens choice dropdown', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--dropdown')
.should('be.visible');
});
});
describe('attempting to select choice', () => {
let selectedChoice;
it('does not select choice', () => {
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--dropdown .choices__item')
.last()
.then($lastChoice => {
selectedChoice = $lastChoice;
})
.click();
cy.get('[data-test-hook=add-items-disabled]')
.find('.choices__list--single .choices__item')
.last()
.should($item => {
expect($item.text()).to.not.contain(selectedChoice.text());
});
});
});
});
describe('prepend/append', () => { describe('prepend/append', () => {
/* /*
{ {

View file

@ -59,6 +59,15 @@
</select> </select>
</div> </div>
<div data-test-hook="add-items-disabled">
<label for="choices-add-items-disabled">Add items disabled</label>
<select class="form-control" name="choices-add-items-disabled" id="choices-add-items-disabled" multiple>
<option value="Dropdown item 1" selected>Dropdown item 1</option>
<option value="Dropdown item 2">Dropdown item 2</option>
<option value="Dropdown item 3">Dropdown item 3</option>
</select>
</div>
<div data-test-hook="selection-limit"> <div data-test-hook="selection-limit">
<label for="choices-selection-limit">Input limit</label> <label for="choices-selection-limit">Input limit</label>
<select class="form-control" name="choices-selection-limit" id="choices-selection-limit" multiple> <select class="form-control" name="choices-selection-limit" id="choices-selection-limit" multiple>
@ -99,7 +108,7 @@
</div> </div>
<div data-test-hook="placeholder"> <div data-test-hook="placeholder">
<label for="choices-placeholder">Search floor</label> <label for="choices-placeholder">Placeholder</label>
<select class="form-control" name="choices-placeholder" id="choices-placeholder" multiple> <select class="form-control" name="choices-placeholder" id="choices-placeholder" multiple>
<option value="Dropdown item 1">Dropdown item 1</option> <option value="Dropdown item 1">Dropdown item 1</option>
<option value="Dropdown item 2">Dropdown item 2</option> <option value="Dropdown item 2">Dropdown item 2</option>
@ -123,6 +132,10 @@
new Choices('#choices-disabled-choice'); new Choices('#choices-disabled-choice');
new Choices('#choices-add-items-disabled', {
addItems: false,
});
new Choices('#choices-selection-limit', { new Choices('#choices-selection-limit', {
maxItemCount: 5, maxItemCount: 5,
}); });

View file

@ -59,6 +59,15 @@
</select> </select>
</div> </div>
<div data-test-hook="add-items-disabled">
<label for="choices-add-items-disabled">Add items disabled</label>
<select class="form-control" name="choices-add-items-disabled" id="choices-add-items-disabled">
<option value="Dropdown item 1" selected>Dropdown item 1</option>
<option value="Dropdown item 2">Dropdown item 2</option>
<option value="Dropdown item 3">Dropdown item 3</option>
</select>
</div>
<div data-test-hook="prepend-append"> <div data-test-hook="prepend-append">
<label for="choices-prepend-append">Prepend/append</label> <label for="choices-prepend-append">Prepend/append</label>
<select class="form-control" name="choices-prepend-append" id="choices-prepend-append"> <select class="form-control" name="choices-prepend-append" id="choices-prepend-append">
@ -113,6 +122,10 @@
removeItemButton: true, removeItemButton: true,
}); });
new Choices('#choices-add-items-disabled', {
addItems: false,
});
new Choices('#choices-prepend-append', { new Choices('#choices-prepend-append', {
prependValue: 'before-', prependValue: 'before-',
appendValue: '-after', appendValue: '-after',

View file

@ -119,7 +119,7 @@
value: 'joe@bloggs.co.uk', value: 'joe@bloggs.co.uk',
label: 'Joe Bloggs', label: 'Joe Bloggs',
customProperties: { customProperties: {
description: 'Joe Blogg is such a generic name' description: 'Joe Blogg is such a generic name',
} }
}], }],
}); });