fonteva-design-guide
Version:
## Dev, Build and Test
62 lines (47 loc) • 1.7 kB
JavaScript
import { createElement } from 'lwc';
import LOADER from 'c/pfmLoader';
describe('c-pfm-loader', () => {
afterEach(() => {
// The jsdom instance is shared across test cases in a single file so reset the DOM
while (document.body.firstChild) {
document.body.removeChild(document.body.firstChild);
}
});
it('start loader', () => {
const element = createElement('c-pfm-loader', {
is: LOADER
});
document.body.appendChild(element);
element.start();
// Verify loader started
const loader = element.shadowRoot.querySelector('.js-loader');
return Promise.resolve().then(() => {
expect(loader).not.toBeNull();
});
});
it('start loader by prop', () => {
const element = createElement('c-pfm-loader', {
is: LOADER
});
document.body.appendChild(element);
element.show = true;
// Verify loader started
const loader = element.shadowRoot.querySelector('.js-loader');
expect(loader).not.toBeNull();
});
it('end loader', done => {
const element = createElement('c-pfm-loader', {
is: LOADER
});
document.body.appendChild(element);
element.start();
element.end();
// The class is removed from the pfmLoader after 1 second, so delay the check
setTimeout(()=>{
// Verify loader ended
const loader = element.shadowRoot.querySelector('.js-loader');
expect(loader).toBeNull();
done();
}, 1500);
});
});