diff --git a/addon-test-support/properties/contains.js b/addon-test-support/properties/contains.js index 59452e9c..2d185414 100644 --- a/addon-test-support/properties/contains.js +++ b/addon-test-support/properties/contains.js @@ -1,6 +1,6 @@ -import { assign } from '../-private/helpers'; +import { assign, every } from '../-private/helpers'; import { findMany, findOne } from '../extend'; -import { A } from '@ember/array'; +import $ from 'jquery'; /** * Returns a boolean representing whether an element or a set of elements contains the specified text. @@ -69,7 +69,6 @@ import { A } from '@ember/array'; * * const page = create({ * scope: '.scope', - * spanContains: contains('span') * }); * @@ -102,7 +101,9 @@ export function contains(selector, userOptions = {}) { let elements = options.multiple ? findMany(this, selector, options) : [findOne(this, selector, options)]; - return A(elements).every((element) => element.innerText.indexOf(textToSearch) >= 0); + return every($(elements), function(element) { + return element.text().indexOf(textToSearch) >= 0; + }); }; } }; diff --git a/tests/unit/-private/properties/contains-test.ts b/tests/unit/-private/properties/contains-test.ts index c048e849..f213f0a5 100644 --- a/tests/unit/-private/properties/contains-test.ts +++ b/tests/unit/-private/properties/contains-test.ts @@ -127,4 +127,26 @@ moduleForProperty('contains', function(test) { assert.ok(page.foo('ipsum')); }); + + test('looks for elements that are visibility hidden', async function(assert) { + let page = create({ + foo: contains('span') + }); + + await this.adapter.createTemplate(this, page, 'Lorem ipsum'); + + assert.ok(!page.foo('Not here')); + assert.ok(page.foo('ipsum')); + }); + + test('looks for elements that are display none', async function(assert) { + let page = create({ + foo: contains('span') + }); + + await this.adapter.createTemplate(this, page, 'Lorem ipsum'); + + assert.ok(!page.foo('Not here')); + assert.ok(page.foo('ipsum')); + }); });