import { insertHtml, removeElement, byId } from './assets/helpers'; import findByClass from '../findByClass'; describe('"findByClass"', () => { beforeAll(() => insertHtml(`
`)); afterAll(() => ['Item1', 'Item2'].forEach((id) => removeElement(id))); it('Finds DOM elements with a given class name', () => { const nodes = findByClass('item'); expect(nodes).toHaveLength(4); expect(nodes[1].id).toBe('Item2'); }); it('Finds DOM elements with all given class names', () => { const nodes = findByClass('item child'); expect(nodes).toHaveLength(2); expect(nodes[1].className).toBe('item child second-child'); }); describe('With multiple queries', () => { it('Finds a unique DOM element collection from a list of classnames', () => { const nodes = findByClass(['item', 'item child']); expect(nodes).toHaveLength(4); expect(nodes[3].className).toBe('item child second-child'); }); }); describe('With defined elm', () => { it('Find DOM elements matching given class names starting from the given DOM element elm', () => { const nodes = findByClass(byId('Item2') as Element, ['item child', 'second-child']); expect(nodes).toHaveLength(2); expect(nodes[1].className).toBe('item child second-child'); }); }); });