UNPKG

fonteva-design-guide

Version:

## Dev, Build and Test

79 lines (69 loc) 2.99 kB
import { createElement } from 'lwc'; import Lookup from 'c/pfmInputLookup'; describe('c-pfm-input-lookup rendering', () => { 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('renders without any list items as default', () => { // Create element const element = createElement('c-pfm-input-lookup', { is: Lookup }); document.body.appendChild(element); // Query for rendered list items const listItemEls = element.shadowRoot.querySelectorAll('li'); expect(listItemEls.length).toBe(0); }); it('renders single entry (no selection)', () => { // Create element const element = createElement('c-pfm-input-lookup', { is: Lookup }); element.isMultiEntry = false; document.body.appendChild(element); // Verify selected icon const selIcon = element.shadowRoot.querySelector('lightning-icon'); expect(selIcon.alternativeText).toBe('Selected item icon'); // Verify clear selection button const clearSelButton = element.shadowRoot.querySelector('button'); expect(clearSelButton.title).toBe('Remove selected option'); // Verify result list is NOT rendered const selList = element.shadowRoot.querySelectorAll('ul.slds-listbox_inline'); expect(selList.length).toBe(0); }); it('renders multi entry (no selection)', () => { // Create element const element = createElement('c-pfm-input-lookup', { is: Lookup }); element.isMultiEntry = true; document.body.appendChild(element); // Verify selected icon is NOT rendered const selIcon = element.shadowRoot.querySelectorAll('lightning-icon'); expect(selIcon.length).toBe(1); // Verify clear selection button is NOT rendered const clearSelButton = element.shadowRoot.querySelectorAll('button'); expect(clearSelButton.length).toBe(0); // Verify result list is rendered const selList = element.shadowRoot.querySelectorAll('ul.slds-listbox_inline'); expect(selList.length).toBe(1); }); it('renders errors', () => { // Create element const element = createElement('c-pfm-input-lookup', { is: Lookup }); element.errors = [ { id: 'e1', message: 'Sample error 1' }, { id: 'e2', message: 'Sample error 2' } ]; document.body.appendChild(element); // Verify errors const errors = element.shadowRoot.querySelectorAll('label.form-error'); expect(errors.length).toBe(2); expect(errors[0].textContent).toBe('Sample error 1'); }); });