expect-element is an extension for expect that lets you write better assertions for DOM nodes.
Using npm:
$ npm install --save expect expect-element
Then, use as you would anything else:
// using ES6 modules
import expect from 'expect'
import expectElement from 'expect-element'
expect.extend(expectElement)
// using CommonJS modules
var expect = require('expect')
var expectElement = require('expect-element')
expect.extend(expectElement)
The UMD build is also available on unpkg:
<script src="https://unpkg.com/expect-element/umd/expect-element.min.js"></script>
You can find the library on window.expectElement
.
expect(element).toHaveAttribute(name, [value, [message]])
Asserts the given DOM element
has an attribute with the given name
. If value
is given, asserts the value of the attribute as well.
expect(element).toHaveAttribute('id')
expect(element).toHaveAttribute('id', 'an-id')
expect(object).toNotHaveAttribute(name, [value, [message]])
Asserts the given DOM element
does not have an attribute with the given name
. If value
is given, asserts the value of the attribute as well.
expect(element).toNotHaveAttribute('id')
expect(element).toNotHaveAttribute('id', 'an-id')
expect(element).toHaveAttribute(attributes, [message])
Asserts the given DOM element
has attributes with the names and values in attributes
.
expect(element).toHaveAttributes({
id: 'an-id',
'class': 'a-class'
})
expect(element).toNotHaveAttribute(attributes, [message])
Asserts the given DOM element
does not have attributes with the names and values in attributes
.
expect(element).toNotHaveAttributes({
id: 'an-id',
'class': 'a-class'
})
expect(element).toHaveText(text, [message])
Asserts the textContent
of the given DOM element
is text
.
expect(element).toHaveText('hello world')
expect(element).toNotHaveText(text, [message])
Asserts the textContent
of the given DOM element
is not text
.
expect(element).toNotHaveText('hello world')