diff --git a/cypress/integration/select-multiple.spec.js b/cypress/integration/select-multiple.spec.js index 39facc3..ab1f4d4 100644 --- a/cypress/integration/select-multiple.spec.js +++ b/cypress/integration/select-multiple.spec.js @@ -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', () => { /* { maxItemCount: 5, - }; + } */ const selectionLimit = 5; @@ -344,7 +392,7 @@ describe('Choices - select multiple', () => { { prependValue: 'before-', appendValue: '-after', - }; + } */ let selectedChoiceText; @@ -363,10 +411,6 @@ describe('Choices - select multiple', () => { .click(); }); - it('works', () => { - expect(true).to.equal(true); - }); - it('prepends and appends value to inputted value', () => { cy.get('[data-test-hook=prepend-append]') .find('.choices__list--multiple .choices__item') @@ -395,7 +439,7 @@ describe('Choices - select multiple', () => { /* { renderChoiceLimit: 1, - }; + } */ it('only displays given number of choices in the dropdown', () => { cy.get('[data-test-hook=render-choice-limit]') @@ -409,9 +453,8 @@ describe('Choices - select multiple', () => { /* { searchFloor: 10, - }; + } */ - describe('on input', () => { describe('search floor not reached', () => { it('displays choices not filtered by inputted value', () => { diff --git a/cypress/integration/select-one.spec.js b/cypress/integration/select-one.spec.js index d35895d..d7b8e0a 100644 --- a/cypress/integration/select-one.spec.js +++ b/cypress/integration/select-one.spec.js @@ -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', () => { /* { diff --git a/public/test/select-multiple.html b/public/test/select-multiple.html index c9e50b5..975e88a 100644 --- a/public/test/select-multiple.html +++ b/public/test/select-multiple.html @@ -59,6 +59,15 @@ +
+ + +
+
@@ -123,6 +132,10 @@ new Choices('#choices-disabled-choice'); + new Choices('#choices-add-items-disabled', { + addItems: false, + }); + new Choices('#choices-selection-limit', { maxItemCount: 5, }); diff --git a/public/test/select-one.html b/public/test/select-one.html index 062d174..de5e8a2 100644 --- a/public/test/select-one.html +++ b/public/test/select-one.html @@ -59,6 +59,15 @@
+
+ + +
+