import $, {VeamsQueryObject} from '../src';
test('before() - insert element before (HTML String)', () => {
document.body.innerHTML = `
text content 2
text content 2
text content 3
`;
const $targetEls: VeamsQueryObject = $('.target-el');
const testEl: HTMLElement = document.getElementById('test-el');
const testEl2: HTMLElement = document.getElementById('test-el-2');
$targetEls.before('inserted element');
expect(document.querySelectorAll('strong')).toHaveLength(3);
expect(testEl.firstElementChild.tagName).toBe('STRONG');
expect(testEl.children[2].tagName).toBe('STRONG');
expect(testEl2.firstElementChild.tagName).toBe('STRONG');
});
test('before() - insert element before (VeamsQueryObject)', () => {
document.body.innerHTML = `
text content 2
text content 2
text content 3
`;
const $targetEls: VeamsQueryObject = $('.target-el');
const testEl: HTMLElement = document.getElementById('test-el');
const testEl2: HTMLElement = document.getElementById('test-el-2');
const $insertEl: VeamsQueryObject = $('inserted element');
$targetEls.before($insertEl);
expect(document.querySelectorAll('strong')).toHaveLength(1);
expect(testEl.children).toHaveLength(2);
expect(testEl2.children).toHaveLength(2);
expect(testEl2.firstElementChild.tagName).toBe('STRONG');
});
test('before() - insert element before (HTMLElement)', () => {
document.body.innerHTML = `
text content 2
text content 2
text content 3
`;
const $targetEls: VeamsQueryObject = $('.target-el');
const testEl: HTMLElement = document.getElementById('test-el');
const testEl2: HTMLElement = document.getElementById('test-el-2');
const insertEl: HTMLElement = document.createElement('strong');
insertEl.innerText = 'inserted element';
$targetEls.before(insertEl);
expect(document.querySelectorAll('strong')).toHaveLength(1);
expect(testEl.children).toHaveLength(2);
expect(testEl2.children).toHaveLength(2);
expect(testEl2.firstElementChild.tagName).toBe('STRONG');
});