https://github.com/colbycheeze/jsdom-mount
Helpers for unit testing with JSDom and polyfill to add dataset object support
https://github.com/colbycheeze/jsdom-mount
Last synced: 4 days ago
JSON representation
Helpers for unit testing with JSDom and polyfill to add dataset object support
- Host: GitHub
- URL: https://github.com/colbycheeze/jsdom-mount
- Owner: colbycheeze
- Created: 2016-03-30T15:52:19.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-07-27T16:00:45.000Z (almost 7 years ago)
- Last Synced: 2024-11-10T17:09:14.667Z (8 months ago)
- Language: JavaScript
- Size: 5.86 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple helper for mounting HTML in unit tests
JSdom doesn't work properly with dataset object, so a fix for that has been added as well.Testing front end code couldn't be easier with this lib.
It is simple, yet does a lot. All you have to do is the following:
```javascript
import mountDOM from 'jsdom-mount';
import { describe, it } from 'mocha';
import { expect } from 'chai';describe('A sample test', function () {
it('works as expected', function () {
mountDOM(`
Just HTML
`);const myDiv = document.getElementById('foo');
myDiv.setAttribute('data-foo-bar', 'baz');
expect(myDiv.dataset.fooBar).to.equal('baz');
});
});
```What just happened there was that the lib checks to see if a global browser environment exists,
and if not, it will set up all of the globals via JSDom, and create a polyfill for the broken
dataset functionality.If browser globals DO exist, it just uses those instead and everything just works as expected.
Each time mountDOM is called, the HTML inside of body is cleared so that tests are clean.