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'));
+ });
});