UNPKG

fonteva-design-guide

Version:

## Dev, Build and Test

101 lines (79 loc) 2.95 kB
import { createElement } from 'lwc'; import BUTTON from 'c/pfmButton'; describe('c-pfm-button', () => { 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 button loader', () => { const element = createElement('c-pfm-button', { is: BUTTON }); document.body.appendChild(element); // Verify button loader element.startLoader(); const loader = element.shadowRoot.querySelector('.js-load'); expect(loader).not.toBeNull(); }); it('stop button loader', () => { const element = createElement('c-pfm-button', { is: BUTTON }); document.body.appendChild(element); // Verify button loader element.startLoader(); element.endLoader(); const loader = element.shadowRoot.querySelector('.js-load'); expect(loader).toBeNull(); }); it('render button theme: danger', () => { const element = createElement('c-pfm-button', { is: BUTTON }); element.theme = 'danger'; document.body.appendChild(element); // Verify theme setTimeout(() => { const theme = element.shadowRoot.querySelector('button').classList.contains('pfm-button_danger'); expect(theme).toBeFalsy(); }, 5); }); it('render button icon', () => { const element = createElement('c-pfm-button', { is: BUTTON }); element.icon = 'utility:add'; element.iconposition = 'left'; document.body.appendChild(element); // Verify icon setTimeout(() => { const icon = element.shadowRoot.querySelector('lightning-icon'); expect(icon).not.toBeNull(); }, 5); }); it('render button icon position', () => { const element = createElement('c-pfm-button', { is: BUTTON }); element.icon = 'utility:add'; element.iconPosition = 'right'; document.body.appendChild(element); // Verify icon position const position = element.shadowRoot.querySelector('button > *:first-of-type'); expect(position === 'span').toBeFalsy(); }); it('render a button w/ multiple additional classes', () => { const element = createElement('c-pfm-button', { is: BUTTON }); element.additionalClasses = 'foo bar'; document.body.appendChild(element); // Verify icon position setTimeout(() => { const btn = element.shadowRoot.querySelector('button.foo.bar'); expect(btn).toBeTruthy(); }); }); });