diff --git a/lib/__tests__/is-disabled.js b/lib/__tests__/is-disabled.js new file mode 100644 index 000000000..2b84cce8e --- /dev/null +++ b/lib/__tests__/is-disabled.js @@ -0,0 +1,72 @@ +/* eslint-env jest */ + +import TestAssertions from "../helpers/test-assertions"; + +describe('assert.dom(...).isDisabled()', () => { + let assert; + + beforeEach(() => { + assert = new TestAssertions(); + }); + + describe('input tags', () => { + test('succeeds when input is disabled', () => { + document.body.innerHTML = ''; + + assert.dom('input').isDisabled(); + assert.dom(document.querySelector('input')).isDisabled(); + + expect(assert.results).toEqual([{ + actual: 'Element input is disabled', + expected: 'Element input is disabled', + message: 'Element input is disabled', + result: true, + }, { + actual: 'Element input[disabled] is disabled', + expected: 'Element input[disabled] is disabled', + message: 'Element input[disabled] is disabled', + result: true, + }]); + }); + + test('fails when input is not disabled', () => { + document.body.innerHTML = ''; + + assert.dom('input').isDisabled(); + assert.dom(document.querySelector('input')).isDisabled(); + + expect(assert.results).toEqual([{ + actual: 'Element input is not disabled', + expected: 'Element input is disabled', + message: 'Element input is disabled', + result: false, + }, { + actual: 'Element input is not disabled', + expected: 'Element input is disabled', + message: 'Element input is disabled', + result: false, + }]); + }); + }); + + describe('non-disablable elements', () => { + test('fails when element does not support disabled', () => { + document.body.innerHTML = '