test-app/tests/unit/extend/find-element-test.ts
import { module, test } from 'qunit';import { setupRenderingTest } from '../../helpers';import { create } from 'ember-cli-page-object';import { findElement } from 'ember-cli-page-object/extend';import hbs from 'htmlbars-inline-precompile';import { render } from '@ember/test-helpers'; module(`Extend | findElement`, function (hooks) { setupRenderingTest(hooks); Similar blocks of code found in 2 locations. Consider refactoring. test('finds by selector and returns jQuery elements collection', async function (assert) { const page = create({}); await render(hbs`<em class="lorem">1</em><span class="ipsum">2</span>`); const foundElements = findElement(page, '.lorem'); assert.equal(foundElements.length, 1); assert.ok(foundElements.jquery); assert.deepEqual( foundElements.toArray().map((el) => el.innerText), ['1'] ); }); Similar blocks of code found in 2 locations. Consider refactoring. test('finds deeper in scope', async function (assert) { const page = create({ scope: '.lorem' }); await render(hbs` <em class="lorem"> <span class="dolor">1</span> </em> <span class="ipsum"> <span class="dolor">2</span> </span> `); const foundElements = findElement(page, '.dolor'); assert.equal(foundElements.length, 1); assert.deepEqual( foundElements.toArray().map((e) => e.innerText), ['1'] ); }); test('returns empty list when no elements found', async function (assert) { const page = create({}); await render(hbs`<em class="lorem"></em>`); assert.deepEqual(findElement(page, '.ipsum', {}).length, 0); }); Similar blocks of code found in 6 locations. Consider refactoring. test('testContainer param', async function (assert) { const page = create({}); await render(hbs` <span class="ipsum">1</span> <div class="new-test-root"> <span class="ipsum">2</span> </div> `); assert.deepEqual( findElement(page, '.ipsum', { testContainer: '.new-test-root', }) .toArray() .map((e) => e.innerText), ['2'] ); }); Similar blocks of code found in 2 locations. Consider refactoring. test('resetScope param', async function (assert) { const page = create({ scope: 'my-page' }); await render(hbs` <span class="lorem">1</span> <div class="my-page"> <span class="ipsum">2</span> <span class="ipsum">3</span> </div> `); assert.deepEqual( findElement(page, '.lorem', { resetScope: true }) .toArray() .map((el) => el.innerText), ['1'] ); }); Similar blocks of code found in 6 locations. Consider refactoring. test('contains param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem" id="1"></span> <span class="lorem" id="2">Word</span> `); assert.deepEqual( findElement(page, '.lorem', { contains: 'Word' }) .toArray() .map((el) => el.id), ['2'] ); }); Similar blocks of code found in 6 locations. Consider refactoring. test('scope param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem">1</span> <span class="ipsum"> <span class="lorem">2</span> </span> `); assert.deepEqual( findElement(page, '.lorem', { scope: '.ipsum' }) .toArray() .map((el) => el.innerText), ['2'] ); }); Similar blocks of code found in 4 locations. Consider refactoring. test('visible param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem" style="display:none">1</span> <span class="lorem">2</span> `); assert.deepEqual( findElement(page, '.lorem', { visible: true }) .toArray() .map((el) => el.innerText), ['2'] ); }); Similar blocks of code found in 2 locations. Consider refactoring. test('at param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem">1</span> <span class="lorem">2</span> <span class="lorem">3</span> `); assert.deepEqual( findElement(page, '.lorem', { at: 1 }) .toArray() .map((el) => el.innerText), ['2'] ); }); Similar blocks of code found in 4 locations. Consider refactoring. test('last param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem">1</span> <span class="lorem">2</span> <span class="lorem">3</span> `); assert.deepEqual( findElement(page, '.lorem', { last: true }) .toArray() .map((el) => el.innerText), ['3'] ); }); Similar blocks of code found in 2 locations. Consider refactoring. test('multiple param', async function (assert) { const page = create({}); await render(hbs` <span class="lorem">1</span> <span class="lorem">2</span> <span class="lorem">3</span> `); assert.deepEqual( findElement(page, '.lorem', { multiple: true }) .toArray() .map((el) => el.innerText), ['1', '2', '3'] ); });});