import '@testing-library/jest-dom';
import $, {VeamsQueryObject} from '../src';
test('find() - string selector (id)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $body = $(document.body);
const $testEls: VeamsQueryObject = $body.find('#target-el-3');
expect($testEls).toHaveLength(1);
expect($testEls[0]).toHaveAttribute('id', 'target-el-3');
});
test('find() - string selector (class)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $body = $(document.body);
const $testEls: VeamsQueryObject = $body.find('.target-el');
expect($testEls).toHaveLength(2);
expect($testEls[0]).toHaveAttribute('id', 'target-el');
expect($testEls[1]).toHaveAttribute('id', 'target-el-4');
});
test('find() - string selector (attribute)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $body = $(document.body);
const $testEls: VeamsQueryObject = $body.find('[tabindex]');
expect($testEls).toHaveLength(3);
expect($testEls[0]).toHaveAttribute('id', 'target-el-2');
expect($testEls[1]).toHaveAttribute('id', 'target-el-4');
expect($testEls[2]).toHaveAttribute('id', 'target-el-5');
});
test('find() - string selector (tag)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $body = $(document.body);
const $testEls: VeamsQueryObject = $body.find('span');
expect($testEls).toHaveLength(2);
expect($testEls[0]).toHaveAttribute('id', 'target-el-2');
expect($testEls[1]).toHaveAttribute('id', 'target-el-4');
});
test('find() - selector (VeamsQueryObject)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $testEls: VeamsQueryObject = $('div');
const $targetEls: VeamsQueryObject = $('.target-el');
const $filteredEls: VeamsQueryObject = $testEls.find($targetEls);
expect($testEls).toHaveLength(5);
expect($targetEls).toHaveLength(2);
expect($targetEls[0]).toHaveAttribute('id', 'target-el');
expect($targetEls[1]).toHaveAttribute('id', 'target-el-4');
expect($filteredEls).toHaveLength(2);
expect($filteredEls[0]).toHaveAttribute('id', 'target-el');
expect($filteredEls[1]).toHaveAttribute('id', 'target-el-4');
});
test('find() - selector (HTMLElement)', () => {
document.body.innerHTML = `
text content
text content
text content
text content
text content
`;
const $testEls: VeamsQueryObject = $('div');
const targetEl: HTMLElement = document.getElementById('target-el-4');
const $filteredEls: VeamsQueryObject = $testEls.find(targetEl);
expect($testEls).toHaveLength(5);
expect($filteredEls).toHaveLength(1);
expect($filteredEls[0]).toHaveAttribute('id', 'target-el-4');
});