diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js index 7358c04b4a8..547aa55055a 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js @@ -1,34 +1,29 @@ import { click, visit } from "@ember/test-helpers"; import { test } from "qunit"; -import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; function assertNoSecondary(assert) { - assert.strictEqual( - query(".display-row.email .value a").innerText, - "eviltrout@example.com", - "it should display the primary email" - ); + assert + .dom(".display-row.email .value a") + .hasText("eviltrout@example.com", "displays the primary email"); - assert.strictEqual( - query(".display-row.secondary-emails .value").innerText.trim(), - i18n("user.email.no_secondary"), - "it should not display secondary emails" - ); + assert + .dom(".display-row.secondary-emails .value") + .hasText( + i18n("user.email.no_secondary"), + "does not display secondary emails" + ); } function assertMultipleSecondary(assert, firstEmail, secondEmail) { - assert.strictEqual( - query(".display-row.secondary-emails .value li:first-of-type a").innerText, - firstEmail, - "it should display the first secondary email" - ); + assert + .dom(".display-row.secondary-emails .value li:first-of-type a") + .hasText(firstEmail, "displays the first secondary email"); - assert.strictEqual( - query(".display-row.secondary-emails .value li:last-of-type a").innerText, - secondEmail, - "it should display the second secondary email" - ); + assert + .dom(".display-row.secondary-emails .value li:last-of-type a") + .hasText(secondEmail, "displays the second secondary email"); } acceptance("Admin - User Emails", function (needs) { @@ -45,10 +40,7 @@ acceptance("Admin - User Emails", function (needs) { assert .dom(".display-row.email .value a") - .hasText( - "markvanlan@example.com", - "it should display the user's primary email" - ); + .hasText("markvanlan@example.com", "displays the user's primary email"); assertMultipleSecondary( assert, diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js index 244a6af6fff..d7a6534a277 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js @@ -1,6 +1,6 @@ import { click, fillIn, visit } from "@ember/test-helpers"; import { test } from "qunit"; -import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; acceptance("Admin - Users List", function (needs) { @@ -58,12 +58,9 @@ acceptance("Admin - Users List", function (needs) { await click(".hide-emails"); - assert.strictEqual( - query(".users-list .user:nth-child(1) .email .directory-table__value") - .innerText, - "", - "hides the emails" - ); + assert + .dom(".users-list .user:nth-child(1) .email .directory-table__value") + .hasNoText("hides the emails"); }); test("switching tabs", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js index d7c20b65eea..98d81a7a319 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js @@ -14,10 +14,7 @@ acceptance("Category Edit - Security", function (needs) { test("default", async function (assert) { await visit("/c/bug/edit/security"); - const firstRow = query(".row-body"); - const badgeName = firstRow.querySelector(".group-name-label").innerText; - assert.strictEqual(badgeName, "everyone"); - + assert.dom(".row-body .group-name-label").hasText("everyone"); assert.dom(".d-icon-square-check").exists({ count: 3 }); }); @@ -57,10 +54,7 @@ acceptance("Category Edit - Security", function (needs) { const addedRow = [...queryAll(".row-body")].at(-1); - assert.strictEqual( - addedRow.querySelector(".group-name-link").innerText, - "staff" - ); + assert.dom(".group-name-link", addedRow).hasText("staff"); assert.strictEqual( addedRow.querySelectorAll(".d-icon-square-check").length, 3, @@ -85,10 +79,7 @@ acceptance("Category Edit - Security", function (needs) { const firstRow = query(".row-body"); - assert.strictEqual( - firstRow.querySelector(".group-name-label").innerText, - "everyone" - ); + assert.dom(".group-name-label", firstRow).hasText("everyone"); assert.strictEqual( firstRow.querySelectorAll(".d-icon-square-check").length, 1, diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js index d1dffe548b8..94f0e38fbe6 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js @@ -521,10 +521,9 @@ acceptance("Composer", function (needs) { // at this point, request is in flight, so post is staged assert.dom(".topic-post").exists(); assert.dom(".topic-post").hasClass("staged"); - assert.strictEqual( - query(".topic-post.staged .cooked").innerText.trim(), - "will return empty json" - ); + assert + .dom(".topic-post.staged .cooked") + .hasText("will return empty json"); return response(200, {}); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js index 6e2f391857f..c5f943bb4a6 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js @@ -1,7 +1,7 @@ import { visit } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { test } from "qunit"; -import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; import { registerTemporaryModule } from "discourse/tests/helpers/temporary-module-helper"; import { withSilencedDeprecationsAsync } from "discourse-common/lib/deprecated"; @@ -18,11 +18,7 @@ acceptance("CustomHTML template", function (needs) { "discourse.custom_html_template", async () => { await visit("/static/faq"); - assert.strictEqual( - query("span.top-span").innerText, - "TOP", - "it inserted the template" - ); + assert.dom("span.top-span").hasText("TOP", "inserted the template"); } ); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-email-settings-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-email-settings-test.js index f5d504a2def..cfe0f633780 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-email-settings-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-email-settings-test.js @@ -111,21 +111,19 @@ acceptance( await formKit().submit(); await click(".group-manage-save"); - assert.strictEqual( - query(".group-manage-save-button > span").innerText, - "Saved!" - ); + assert.dom(".group-manage-save-button > span").hasText("Saved!"); assert .dom("#enable_imap") .isEnabled("IMAP is able to be enabled now that SMTP is saved"); await click("#enable_smtp"); - assert.strictEqual( - query(".dialog-body").innerText.trim(), - i18n("groups.manage.email.smtp_disable_confirm"), - "shows a confirm dialogue warning SMTP settings will be wiped" - ); + assert + .dom(".dialog-body") + .hasText( + i18n("groups.manage.email.smtp_disable_confirm"), + "shows a confirm dialogue warning SMTP settings will be wiped" + ); await click(".dialog-footer .btn-primary"); }); @@ -172,10 +170,7 @@ acceptance( await click(".group-manage-save"); - assert.strictEqual( - query(".group-manage-save-button > span").innerText, - "Saved!" - ); + assert.dom(".group-manage-save-button > span").hasText("Saved!"); assert .dom(".imap-no-mailbox-selected") @@ -194,11 +189,12 @@ acceptance( .doesNotExist("no longer shows a no mailbox selected message"); await click("#enable_imap"); - assert.strictEqual( - query(".dialog-body").innerText.trim(), - i18n("groups.manage.email.imap_disable_confirm"), - "shows a confirm dialogue warning IMAP settings will be wiped" - ); + assert + .dom(".dialog-body") + .hasText( + i18n("groups.manage.email.imap_disable_confirm"), + "shows a confirm dialogue warning IMAP settings will be wiped" + ); await click(".dialog-footer .btn-primary"); }); } @@ -349,8 +345,7 @@ acceptance( await formKit().field("email_password").fillIn("password"); await formKit().submit(); - assert.strictEqual( - query(".dialog-body").innerText.trim(), + assert.dom(".dialog-body").hasText( i18n("generic_error_with_reason", { error: "There was an issue with the SMTP credentials provided, check the username and password and try again.", diff --git a/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js b/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js index 1663d2e095f..b48fd5e91eb 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js @@ -1,6 +1,6 @@ import { click, fillIn, visit } from "@ember/test-helpers"; import { test } from "qunit"; -import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; acceptance("New Group - Anonymous", function () { @@ -69,12 +69,11 @@ acceptance("New Group - Authenticated", function (needs) { .dom("groups-new-allow-membership-requests") .doesNotExist("it should disable the membership requests checkbox"); - assert.strictEqual( - query( - ".groups-form-default-notification-level .selected-name .name" - ).innerText.trim(), - i18n("groups.notifications.watching.title"), - "it has a default selection for notification level" - ); + assert + .dom(".groups-form-default-notification-level .selected-name .name") + .hasText( + i18n("groups.notifications.watching.title"), + "has a default selection for notification level" + ); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/review-test.js b/app/assets/javascripts/discourse/tests/acceptance/review-test.js index 2bc184bb323..a279dafa4e3 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/review-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/review-test.js @@ -4,7 +4,6 @@ import { acceptance, loggedInUser, publishToMessageBus, - query, } from "discourse/tests/helpers/qunit-helpers"; import selectKit from "discourse/tests/helpers/select-kit-helper"; import { i18n } from "discourse-i18n"; @@ -133,20 +132,10 @@ acceptance("Review", function (needs) { assert.dom(`${topic} .reviewable-action.approve`).exists(); assert.dom(`${topic} .badge-category__name`).doesNotExist(); - assert.strictEqual( - query(`${topic} .discourse-tag:nth-of-type(1)`).innerText, - "hello" - ); + assert.dom(`${topic} .discourse-tag:nth-of-type(1)`).hasText("hello"); + assert.dom(`${topic} .discourse-tag:nth-of-type(2)`).hasText("world"); - assert.strictEqual( - query(`${topic} .discourse-tag:nth-of-type(2)`).innerText, - "world" - ); - - assert.strictEqual( - query(`${topic} .post-body`).innerText.trim(), - "existing body" - ); + assert.dom(`${topic} .post-body`).hasText("existing body"); await click(`${topic} .reviewable-action.edit`); await click(`${topic} .reviewable-action.save-edit`); @@ -164,11 +153,9 @@ acceptance("Review", function (needs) { await fillIn(".editable-field.payload-raw textarea", "new raw contents"); await click(`${topic} .reviewable-action.cancel-edit`); - assert.strictEqual( - query(`${topic} .post-body`).innerText.trim(), - "existing body", - "cancelling does not update the value" - ); + assert + .dom(`${topic} .post-body`) + .hasText("existing body", "cancelling does not update the value"); await click(`${topic} .reviewable-action.edit`); let category = selectKit(`${topic} .category-id .select-kit`); @@ -193,27 +180,12 @@ acceptance("Review", function (needs) { await fillIn(".editable-field.payload-raw textarea", "new raw contents"); await click(`${topic} .reviewable-action.save-edit`); - assert.strictEqual( - query(`${topic} .discourse-tag:nth-of-type(1)`).innerText, - "hello" - ); - assert.strictEqual( - query(`${topic} .discourse-tag:nth-of-type(2)`).innerText, - "world" - ); - assert.strictEqual( - query(`${topic} .discourse-tag:nth-of-type(3)`).innerText, - "monkey" - ); + assert.dom(`${topic} .discourse-tag:nth-of-type(1)`).hasText("hello"); + assert.dom(`${topic} .discourse-tag:nth-of-type(2)`).hasText("world"); + assert.dom(`${topic} .discourse-tag:nth-of-type(3)`).hasText("monkey"); - assert.strictEqual( - query(`${topic} .post-body`).innerText.trim(), - "new raw contents" - ); - assert.strictEqual( - query(`${topic} .badge-category__name`).innerText.trim(), - "support" - ); + assert.dom(`${topic} .post-body`).hasText("new raw contents"); + assert.dom(`${topic} .badge-category__name`).hasText("support"); }); test("Reviewables can become stale", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-test.js index 63f0021084b..e8c3f89d9c6 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/search-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/search-test.js @@ -119,21 +119,20 @@ acceptance("Search - Anonymous", function (needs) { await click("#search-button"); await fillIn("#search-term", "dev"); - assert.strictEqual( - query( + assert + .dom( ".search-menu .results ul.search-menu-initial-options li:first-child .search-item-prefix" - ).innerText.trim(), - "dev", - "first dropdown item includes correct prefix" - ); + ) + .hasText("dev", "first dropdown item includes correct prefix"); - assert.strictEqual( - query( + assert + .dom( ".search-menu .results ul.search-menu-initial-options li:first-child .search-item-slug" - ).innerText.trim(), - i18n("search.in_topics_posts"), - "first dropdown item includes correct suffix" - ); + ) + .hasText( + i18n("search.in_topics_posts"), + "first dropdown item includes correct suffix" + ); assert .dom(".search-menu .search-result-category ul li") @@ -866,20 +865,15 @@ acceptance("Search - with tagging enabled", function (needs) { await visit("/tags/c/bug/dev"); await click("#search-button"); - assert.strictEqual( - query( + assert + .dom( ".search-menu .results ul.search-menu-assistant .badge-category__name" - ).innerText, - "bug", - "Category is displayed" - ); + ) + .hasText("bug", "Category is displayed"); - assert.strictEqual( - query(".search-menu .results ul.search-menu-assistant .search-item-tag") - .innerText, - "dev", - "Tag is displayed" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-tag") + .hasText("dev", "Tag is displayed"); }); test("initial options - tag and category search scope - updates tag / category combination search suggestion when typing", async function (assert) { @@ -887,27 +881,19 @@ acceptance("Search - with tagging enabled", function (needs) { await click("#search-button"); await fillIn("#search-term", "foo bar"); - assert.strictEqual( - query( - ".search-menu .results ul.search-menu-assistant .search-item-prefix" - ).innerText, - "foo bar", - "Input is applied to search query" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-prefix") + .hasText("foo bar", "Input is applied to search query"); - assert.strictEqual( - query( + assert + .dom( ".search-menu .results ul.search-menu-assistant .badge-category__name" - ).innerText, - "bug" - ); + ) + .hasText("bug"); - assert.strictEqual( - query(".search-menu .results ul.search-menu-assistant .search-item-tag") - .innerText, - "dev", - "Tag is displayed" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-tag") + .hasText("dev", "Tag is displayed"); }); test("initial options - search history - tag intersection context", async function (assert) { @@ -923,12 +909,9 @@ acceptance("Search - with tagging enabled", function (needs) { await visit("/tags/intersection/dev/foo"); await click("#search-button"); - assert.strictEqual( - query(".search-menu .results ul.search-menu-assistant .search-item-tag") - .innerText, - "tags:dev+foo", - "Tags are displayed" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-tag") + .hasText("tags:dev+foo", "Tags are displayed"); }); test("initial options - tag intersection search scope - updates tag intersection search suggestion when typing", async function (assert) { @@ -936,20 +919,13 @@ acceptance("Search - with tagging enabled", function (needs) { await click("#search-button"); await fillIn("#search-term", "foo bar"); - assert.strictEqual( - query( - ".search-menu .results ul.search-menu-assistant .search-item-prefix" - ).innerText, - "foo bar", - "Input is applied to search query" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-prefix") + .hasText("foo bar", "Input is applied to search query"); - assert.strictEqual( - query(".search-menu .results ul.search-menu-assistant .search-item-tag") - .innerText, - "tags:dev+foo", - "Tags are displayed" - ); + assert + .dom(".search-menu .results ul.search-menu-assistant .search-item-tag") + .hasText("tags:dev+foo", "Tags are displayed"); }); }); @@ -1135,38 +1111,31 @@ acceptance("Search - assistant", function (needs) { await click("#search-button"); await fillIn("#search-term", "#"); - assert.strictEqual( - query( + assert + .dom( ".search-menu .results ul.search-menu-assistant .search-link .badge-category__name" - ).innerText, - "support" - ); + ) + .hasText("support"); }); test("initial options - shows in: shortcuts", async function (assert) { await visit("/"); await click("#search-button"); const firstTarget = - ".search-menu .results ul.search-menu-assistant .search-link "; + ".search-menu .results ul.search-menu-assistant .search-link"; await fillIn("#search-term", "in:"); - assert.strictEqual( - query(firstTarget.concat(".search-item-slug")).innerText, - "in:title", - "keyword is present in suggestion" - ); + assert + .dom(`${firstTarget} .search-item-slug`) + .hasText("in:title", "keyword is present in suggestion"); await fillIn("#search-term", "sam in:"); - assert.strictEqual( - query(firstTarget.concat(".search-item-prefix")).innerText, - "sam", - "term is present in suggestion" - ); - assert.strictEqual( - query(firstTarget.concat(".search-item-slug")).innerText, - "in:title", - "keyword is present in suggestion" - ); + assert + .dom(`${firstTarget} .search-item-prefix`) + .hasText("sam", "term is present in suggestion"); + assert + .dom(`${firstTarget} .search-item-slug`) + .hasText("in:title", "keyword is present in suggestion"); await fillIn("#search-term", "in:mess"); assert.dom(firstTarget).hasText("in:messages"); @@ -1176,13 +1145,22 @@ acceptance("Search - assistant", function (needs) { await visit("/"); await click("#search-button"); await fillIn("#search-term", "@"); - const firstUser = query( + assert + .dom( + ".search-menu .results ul.search-menu-assistant .search-item-user .username" + ) + .hasText("TeaMoe"); + + const username = document + .querySelector( + ".search-menu .results ul.search-menu-assistant .search-item-user .username" + ) + .innerText.trim(); + + await click( ".search-menu .results ul.search-menu-assistant .search-item-user" ); - const username = firstUser.querySelector(".username").innerText.trim(); - assert.strictEqual(username, "TeaMoe"); - await click(firstUser); assert.dom("#search-term").hasValue(`@${username}`); }); @@ -1244,16 +1222,18 @@ acceptance("Search - assistant", function (needs) { .exists({ count: 1 }, "passes the PM search context to the search query"); }); - test("topic results - updates search term when selecting a initial category option", async function (assert) { + test("topic results - updates search term when selecting an initial category option", async function (assert) { await visit("/"); await click("#search-button"); await fillIn("#search-term", "sam #"); + const firstCategory = ".search-menu .results ul.search-menu-assistant .search-link"; - const firstCategoryName = query( + const firstCategoryName = document.querySelector( `${firstCategory} .badge-category__name` ).innerText; - await click(firstCategory); + + await click(`${firstCategory} .badge-category__name`); assert.strictEqual( query("#search-term").value, diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js index c74193d14c4..9ffd477dcba 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js @@ -5,7 +5,6 @@ import { acceptance, fakeTime, loggedInUser, - query, queryAll, updateCurrentUser, } from "discourse/tests/helpers/qunit-helpers"; @@ -159,10 +158,6 @@ acceptance("Topic - Edit timer", function (needs) { await click("#tap_tile_start_of_next_business_week"); - const text = query( - ".edit-topic-timer-modal .topic-timer-info" - ).innerText.trim(); - // this needs to be done because there is no simple way to get the // plain text version of a translation with HTML let el = document.createElement("p"); @@ -172,7 +167,9 @@ acceptance("Topic - Edit timer", function (needs) { timeLeft: "in 6 days", }); - assert.strictEqual(text, el.innerText); + assert + .dom(".edit-topic-timer-modal .topic-timer-info") + .hasText(el.innerText); }); test("schedule publish to category - visible for a private category", async function (assert) { @@ -196,10 +193,6 @@ acceptance("Topic - Edit timer", function (needs) { await click("#tap_tile_start_of_next_business_week"); - const text = query( - ".edit-topic-timer-modal .topic-timer-info" - ).innerText.trim(); - // this needs to be done because there is no simple way to get the // plain text version of a translation with HTML let el = document.createElement("p"); @@ -209,7 +202,9 @@ acceptance("Topic - Edit timer", function (needs) { timeLeft: "in 6 days", }); - assert.strictEqual(text, el.innerText); + assert + .dom(".edit-topic-timer-modal .topic-timer-info") + .hasText(el.innerText); }); test("schedule publish to category - visible for an unlisted public topic", async function (assert) { @@ -237,10 +232,6 @@ acceptance("Topic - Edit timer", function (needs) { await click("#tap_tile_start_of_next_business_week"); - const text = query( - ".edit-topic-timer-modal .topic-timer-info" - ).innerText.trim(); - // this needs to be done because there is no simple way to get the // plain text version of a translation with HTML let el = document.createElement("p"); @@ -250,7 +241,9 @@ acceptance("Topic - Edit timer", function (needs) { timeLeft: "in 6 days", }); - assert.strictEqual(text, el.innerText); + assert + .dom(".edit-topic-timer-modal .topic-timer-info") + .hasText(el.innerText); }); test("schedule publish to category - last custom date and time", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js index 257340d0e16..9d68862931c 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js @@ -273,8 +273,7 @@ acceptance("Topic featured links", function (needs) { test("remove nofollow attribute", async function (assert) { await visit("/t/-/299/1"); - const link = query(".title-wrapper .topic-featured-link"); - assert.strictEqual(link.innerText, "example.com"); + assert.dom(".title-wrapper .topic-featured-link").hasText("example.com"); assert .dom(".title-wrapper .topic-featured-link") .hasAttribute("rel", "ugc"); diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-security-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-security-test.js index 4df111984fa..6e48be5b3b1 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-security-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-security-test.js @@ -2,7 +2,6 @@ import { click, visit } from "@ember/test-helpers"; import { test } from "qunit"; import { acceptance, - query, updateCurrentUser, } from "discourse/tests/helpers/qunit-helpers"; import selectKit from "discourse/tests/helpers/select-kit-helper"; @@ -28,13 +27,9 @@ acceptance("User Preferences - Security", function (needs) { test("recently connected devices", async function (assert) { await visit("/u/eviltrout/preferences/security"); - assert.strictEqual( - query( - ".auth-tokens > .auth-token:nth-of-type(1) .auth-token-device" - ).innerText.trim(), - "Linux Computer", - "it should display active token first" - ); + assert + .dom(".auth-tokens > .auth-token:nth-of-type(1) .auth-token-device") + .hasText("Linux Computer", "displays active token first"); assert .dom(".pref-auth-tokens > a:nth-of-type(1)") diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-private-messages-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-private-messages-test.js index 0c383ee0d4d..a7dc6504c57 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-private-messages-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-private-messages-test.js @@ -356,17 +356,19 @@ acceptance( await publishUnreadToMessageBus({ topicId: 1 }); await publishNewToMessageBus({ topicId: 2 }); - assert.strictEqual( - query(".user-nav__messages-new").innerText.trim(), - i18n("user.messages.new_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".user-nav__messages-new") + .hasText( + i18n("user.messages.new_with_count", { count: 1 }), + "displays the right count" + ); - assert.strictEqual( - query(".user-nav__messages-unread").innerText.trim(), - i18n("user.messages.unread_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".user-nav__messages-unread") + .hasText( + i18n("user.messages.unread_with_count", { count: 1 }), + "displays the right count" + ); }); test("incoming new messages while viewing new", async function (assert) { @@ -374,21 +376,23 @@ acceptance( await publishNewToMessageBus({ topicId: 1 }); - assert.strictEqual( - query(".messages-nav .user-nav__messages-new").innerText.trim(), - i18n("user.messages.new_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-new") + .hasText( + i18n("user.messages.new_with_count", { count: 1 }), + "displays the right count" + ); assert.dom(".show-mores").exists("displays the topic incoming info"); await publishNewToMessageBus({ topicId: 2 }); - assert.strictEqual( - query(".messages-nav .user-nav__messages-new").innerText.trim(), - i18n("user.messages.new_with_count", { count: 2 }), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-new") + .hasText( + i18n("user.messages.new_with_count", { count: 2 }), + "displays the right count" + ); assert.dom(".show-mores").exists("displays the topic incoming info"); }); @@ -398,11 +402,12 @@ acceptance( await publishUnreadToMessageBus(); - assert.strictEqual( - query(".messages-nav .user-nav__messages-unread").innerText.trim(), - i18n("user.messages.unread_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-unread") + .hasText( + i18n("user.messages.unread_with_count", { count: 1 }), + "displays the right count" + ); assert.dom(".show-mores").exists("displays the topic incoming info"); }); @@ -413,35 +418,31 @@ acceptance( await publishUnreadToMessageBus({ groupIds: [14], topicId: 1 }); await publishNewToMessageBus({ groupIds: [14], topicId: 2 }); - assert.strictEqual( - query( - ".messages-nav .user-nav__messages-group-unread" - ).innerText.trim(), - i18n("user.messages.unread_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-group-unread") + .hasText( + i18n("user.messages.unread_with_count", { count: 1 }), + "displays the right count" + ); - assert.strictEqual( - query(".messages-nav .user-nav__messages-group-new").innerText.trim(), - i18n("user.messages.new_with_count", { count: 1 }), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-group-new") + .hasText( + i18n("user.messages.new_with_count", { count: 1 }), + "displays the right count" + ); assert.dom(".show-mores").exists("displays the topic incoming info"); await visit("/u/charlie/messages/unread"); - assert.strictEqual( - query(".messages-nav .user-nav__messages-unread").innerText.trim(), - i18n("user.messages.unread"), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-unread") + .hasText(i18n("user.messages.unread"), "displays the right count"); - assert.strictEqual( - query(".messages-nav .user-nav__messages-new").innerText.trim(), - i18n("user.messages.new"), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-new") + .hasText(i18n("user.messages.new"), "displays the right count"); }); test("incoming messages is not tracked on non user messages route", async function (assert) { @@ -471,11 +472,9 @@ acceptance( await click(".btn.dismiss-read"); await click("#dismiss-read-confirm"); - assert.strictEqual( - query(".user-nav__messages-unread").innerText.trim(), - i18n("user.messages.unread"), - "displays the right count" - ); + assert + .dom(".user-nav__messages-unread") + .hasText(i18n("user.messages.unread"), "displays the right count"); assert .dom(".topic-list-item") @@ -525,11 +524,9 @@ acceptance( await click(".btn.dismiss-read"); - assert.strictEqual( - query(".messages-nav .user-nav__messages-new").innerText.trim(), - i18n("user.messages.new"), - "displays the right count" - ); + assert + .dom(".messages-nav .user-nav__messages-new") + .hasText(i18n("user.messages.new"), "displays the right count"); assert .dom(".topic-list-item") diff --git a/app/assets/javascripts/discourse/tests/integration/components/form-template-field/dropdown-test.js b/app/assets/javascripts/discourse/tests/integration/components/form-template-field/dropdown-test.js index 998bedcf833..c10a0c798c5 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/form-template-field/dropdown-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/form-template-field/dropdown-test.js @@ -2,7 +2,7 @@ import { render } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query, queryAll } from "discourse/tests/helpers/qunit-helpers"; +import { queryAll } from "discourse/tests/helpers/qunit-helpers"; import selectKit from "discourse/tests/helpers/select-kit-helper"; module( @@ -63,11 +63,9 @@ module( .dom(".form-template-field__dropdown") .exists("a dropdown component exists"); - assert.strictEqual( - query(".form-template-field__dropdown-placeholder").innerText, - attributes.none_label, - "None label is correct" - ); + assert + .dom(".form-template-field__dropdown-placeholder") + .hasText(attributes.none_label, "None label is correct"); }); test("doesn't render a label when attribute is missing", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/form-template-field/multi-select-test.js b/app/assets/javascripts/discourse/tests/integration/components/form-template-field/multi-select-test.js index 27f3e2b3d34..7f886beec9b 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/form-template-field/multi-select-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/form-template-field/multi-select-test.js @@ -2,7 +2,7 @@ import { render } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query, queryAll } from "discourse/tests/helpers/qunit-helpers"; +import { queryAll } from "discourse/tests/helpers/qunit-helpers"; import selectKit from "discourse/tests/helpers/select-kit-helper"; module( @@ -64,11 +64,9 @@ module( .dom(".form-template-field__multi-select") .exists("a multiselect dropdown component exists"); - assert.strictEqual( - query(".form-template-field__multi-select-placeholder").innerText, - attributes.none_label, - "None label is correct" - ); + assert + .dom(".form-template-field__multi-select-placeholder") + .hasText(attributes.none_label, "None label is correct"); }); test("doesn't render a label when attribute is missing", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js index f5dc1760c41..9df9bde1ed5 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js @@ -3,7 +3,6 @@ import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { withPluginApi } from "discourse/lib/plugin-api"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import selectKit, { DEFAULT_CONTENT, setDefaultState, @@ -89,7 +88,7 @@ module("Integration | Component | select-kit/api", function (hooks) { withPluginApi("0.8.43", (api) => { api.modifySelectKit("combo-box").onChange((component, value, item) => { - query("#test").innerText = item.name; + document.querySelector("#test").innerText = item.name; }); }); diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js index c427d1107be..1a571bfa0e6 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js @@ -303,11 +303,9 @@ module( await this.subject.expand(); - assert.strictEqual( - this.subject.rowByIndex(0).el().querySelector(".category-desc") - .innerText, - 'baz "bar ‘foo’' - ); + assert + .dom(".category-desc", this.subject.rowByIndex(0).el()) + .hasText('baz "bar ‘foo’'); }); } ); diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js index 5bd5af9fe06..746c707c6c8 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js @@ -234,13 +234,10 @@ module("Integration | Component | select-kit/category-drop", function (hooks) { const category = Category.findById(7); const row = this.subject.rowByValue(category.id); - const topicCount = row.el().querySelector(".topic-count").innerText.trim(); - assert.strictEqual( - topicCount, - "× 481", - "doesn't include the topic count of subcategories" - ); + assert + .dom(".topic-count", row.el()) + .hasText("× 481", "doesn't include the topic count of subcategories"); }); test("countSubcategories (true)", async function (assert) { @@ -261,13 +258,10 @@ module("Integration | Component | select-kit/category-drop", function (hooks) { const category = Category.findById(7); const row = this.subject.rowByValue(category.id); - const topicCount = row.el().querySelector(".topic-count").innerText.trim(); - assert.strictEqual( - topicCount, - "× 584", - "includes the topic count of subcategories" - ); + assert + .dom(".topic-count", row.el()) + .hasText("× 584", "includes the topic count of subcategories"); }); test("shortcuts:default", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-selector-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-selector-test.js index 98a67e88475..13825a7b61f 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-selector-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-selector-test.js @@ -44,14 +44,12 @@ module( await this.subject.fillInFilter("Parent Category"); assert.strictEqual(this.subject.rows().length, 2); - assert.strictEqual( - this.subject.rowByIndex(0).el().innerText.replace("\n", " "), - "Parent Category × 95" - ); - assert.strictEqual( - this.subject.rowByIndex(1).el().innerText.replaceAll("\n", " "), - "Parent Category × 95 +2 subcategories" - ); + assert + .dom(this.subject.rowByIndex(0).el()) + .hasText("Parent Category× 95"); + assert + .dom(this.subject.rowByIndex(1).el()) + .hasText("Parent Category× 95+2 subcategories"); }); } ); diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js index 0d12ec7c78e..db582d6d069 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js @@ -58,9 +58,7 @@ module( await this.subject.fillInFilter("baz"); await this.subject.selectRowByValue("monkey"); - const error = query(".select-kit-error").innerText; - assert.strictEqual( - error, + assert.dom(".select-kit-error").hasText( i18n("select_kit.max_content_reached", { count: this.siteSettings.max_tags_per_topic, }) @@ -76,9 +74,7 @@ module( assert.strictEqual(this.subject.header().value(), "cat,kit"); await this.subject.expand(); - const error = query(".select-kit-error").innerText; - assert.strictEqual( - error, + assert.dom(".select-kit-error").hasText( i18n("select_kit.max_content_reached", { count: 0, }) diff --git a/app/assets/javascripts/discourse/tests/integration/components/themes-list-item-test.js b/app/assets/javascripts/discourse/tests/integration/components/themes-list-item-test.js index 216249a5d8b..3a73c907cf5 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/themes-list-item-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/themes-list-item-test.js @@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; import Theme from "admin/models/theme"; @@ -59,21 +58,18 @@ module("Integration | Component | themes-list-item", function (hooks) { await render(hbs``); assert.deepEqual( - query(".components") - .innerText.trim() - .split(",") - .map((n) => n.trim()) - .join(","), - this.childrenList - .splice(0, 4) - .map((theme) => theme.get("name")) - .join(","), + document + .querySelector(".components") + .innerText.split(",") + .map((n) => n.trim()), + this.childrenList.splice(0, 4).map((theme) => theme.get("name")), "lists the first 4 children" ); - assert.deepEqual( - query(".others-count").innerText.trim(), - i18n("admin.customize.theme.and_x_more", { count: 1 }), - "shows count of remaining children" - ); + assert + .dom(".others-count") + .hasText( + i18n("admin.customize.theme.and_x_more", { count: 1 }), + "shows count of remaining children" + ); }); }); diff --git a/app/assets/javascripts/discourse/tests/integration/components/time-shortcut-picker-test.js b/app/assets/javascripts/discourse/tests/integration/components/time-shortcut-picker-test.js index ab3506ba481..77d771a68d5 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/time-shortcut-picker-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/time-shortcut-picker-test.js @@ -2,11 +2,7 @@ import { click, render } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { - fakeTime, - query, - queryAll, -} from "discourse/tests/helpers/qunit-helpers"; +import { fakeTime, queryAll } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; module("Integration | Component | time-shortcut-picker", function (hooks) { @@ -140,11 +136,9 @@ module("Integration | Component | time-shortcut-picker", function (hooks) { .dom("#tap_tile_start_of_next_business_week .tap-tile-title") .hasText("Next Monday"); - assert.strictEqual( - query("div#tap_tile_start_of_next_business_week div.tap-tile-date") - .innerText, - "Feb 1, 8:00 am" - ); + assert + .dom("div#tap_tile_start_of_next_business_week div.tap-tile-date") + .hasText("Feb 1, 8:00 am"); }); test("shows 'Next Monday' instead of 'Monday' on Mondays", async function (assert) { @@ -157,11 +151,9 @@ module("Integration | Component | time-shortcut-picker", function (hooks) { .dom("#tap_tile_start_of_next_business_week .tap-tile-title") .hasText("Next Monday"); - assert.strictEqual( - query("div#tap_tile_start_of_next_business_week div.tap-tile-date") - .innerText, - "Feb 1, 8:00 am" - ); + assert + .dom("div#tap_tile_start_of_next_business_week div.tap-tile-date") + .hasText("Feb 1, 8:00 am"); }); test("the 'Next Month' option points to the first day of the next month", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test-with-glimmer-post-menu-test.js b/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test-with-glimmer-post-menu-test.js index 5ca5f80062e..31c5ebc7bde 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test-with-glimmer-post-menu-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test-with-glimmer-post-menu-test.js @@ -4,7 +4,7 @@ import { click, render, triggerEvent } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { count, query, queryAll } from "discourse/tests/helpers/qunit-helpers"; +import { count, queryAll } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; module( @@ -721,8 +721,7 @@ module( await render(hbs` `); - assert.strictEqual( - query(".post-notice.returning-user:not(.old)").innerText.trim(), + assert.dom(".post-notice.returning-user:not(.old)").hasText( i18n("post.notice.returning_user", { user: "codinghorror", time: "2 days ago", @@ -744,10 +743,11 @@ module( await render(hbs` `); - assert.strictEqual( - query(".post-notice.old.new-user").innerText.trim(), - i18n("post.notice.new_user", { user: "Jeff", time: "Jan '10" }) - ); + assert + .dom(".post-notice.old.new-user") + .hasText( + i18n("post.notice.new_user", { user: "Jeff", time: "Jan '10" }) + ); }); test("show group request in post", async function (assert) { @@ -759,12 +759,10 @@ module( await render(hbs` `); - const link = query(".group-request a"); - assert.strictEqual(link.innerText.trim(), i18n("groups.requests.handle")); - assert.strictEqual( - link.getAttribute("href"), - "/g/testGroup/requests?filter=foo" - ); + assert.dom(".group-request a").hasText(i18n("groups.requests.handle")); + assert + .dom(".group-request a") + .hasAttribute("href", "/g/testGroup/requests?filter=foo"); }); test("shows user status if enabled in site settings", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test.js b/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test.js index ae4199b54eb..820f42b090e 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/widgets/post-test.js @@ -6,7 +6,6 @@ import { click, render, triggerEvent } from "@ember/test-helpers"; import { hbs } from "ember-cli-htmlbars"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import { i18n } from "discourse-i18n"; module("Integration | Component | Widget | post", function (hooks) { @@ -1155,8 +1154,7 @@ module("Integration | Component | Widget | post", function (hooks) { await render(hbs` `); - const link = query(".group-request a"); - assert.strictEqual(link.innerText.trim(), i18n("groups.requests.handle")); + assert.dom(".group-request a").hasText(i18n("groups.requests.handle")); assert .dom(".group-request a") .hasAttribute("href", "/g/testGroup/requests?filter=foo"); diff --git a/app/assets/javascripts/discourse/tests/integration/components/widgets/widget-dropdown-test.js b/app/assets/javascripts/discourse/tests/integration/components/widgets/widget-dropdown-test.js index 4a14ad79f45..ba8e86e9d18 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/widgets/widget-dropdown-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/widgets/widget-dropdown-test.js @@ -29,10 +29,6 @@ async function toggle() { await click("#my-dropdown .widget-dropdown-header"); } -function headerLabel() { - return query("#my-dropdown .widget-dropdown-header .label").innerText.trim(); -} - function header() { return query("#my-dropdown .widget-dropdown-header"); } @@ -79,7 +75,7 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { await render(TEMPLATE); - assert.strictEqual(headerLabel(), "FooBaz"); + assert.dom("#my-dropdown .widget-dropdown-header .label").hasText("FooBaz"); }); test("translatedLabel", async function (assert) { @@ -89,7 +85,7 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { await render(TEMPLATE); - assert.strictEqual(headerLabel(), this.translatedLabel); + assert.dom("#my-dropdown .widget-dropdown-header .label").hasText("BazFoo"); }); test("content", async function (assert) { @@ -105,7 +101,10 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { test("onChange action", async function (assert) { this.setProperties(DEFAULT_CONTENT); - this.set("onChange", (item) => (query("#test").innerText = item.id)); + this.set( + "onChange", + (item) => (document.querySelector("#test").innerText = item.id) + ); await render(hbs`
@@ -134,7 +133,7 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { assert.dom("#my-dropdown.closed").exists(); assert.dom("#my-dropdown .widget-dropdown-body").doesNotExist(); await toggle(); - assert.strictEqual(rowById(2).innerText.trim(), "FooBar"); + assert.dom(rowById(2)).hasText("FooBar"); assert.dom("#my-dropdown.opened").exists(); assert.dom("#my-dropdown .widget-dropdown-body").exists(); await toggle(); @@ -166,7 +165,7 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { await render(TEMPLATE); await toggle(); - assert.strictEqual(rowById(2).innerText.trim(), "FooBar"); + assert.dom(rowById(2)).hasText("FooBar"); }); test("content with label", async function (assert) { @@ -176,7 +175,7 @@ module("Integration | Component | Widget | widget-dropdown", function (hooks) { await render(TEMPLATE); await toggle(); - assert.strictEqual(rowById(1).innerText.trim(), "FooBaz"); + assert.dom(rowById(1)).hasText("FooBaz"); }); test("content with icon", async function (assert) { diff --git a/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js b/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js index 970433317bc..b655b828c92 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js @@ -34,11 +34,7 @@ module("Unit | Utility | category-badge", function (hooks) { assert .dom(label) .hasAttribute("title", "cool description", "has the correct title"); - assert.strictEqual( - label.children[0].innerText, - "hello", - "has the category name" - ); + assert.dom(label.children[0]).hasText("hello", "has the category name"); }); test("undefined color", function (assert) { diff --git a/app/assets/javascripts/discourse/tests/unit/lib/highlight-syntax-test.js b/app/assets/javascripts/discourse/tests/unit/lib/highlight-syntax-test.js index b473a16a112..fdf5140ed0d 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/highlight-syntax-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/highlight-syntax-test.js @@ -3,8 +3,7 @@ import { module, test } from "qunit"; import highlightSyntax from "discourse/lib/highlight-syntax"; import { fixture } from "discourse/tests/helpers/qunit-helpers"; -let siteSettings = { autohighlight_all_code: true }, - session = {}; +const siteSettings = { autohighlight_all_code: true }; module("Unit | Utility | highlight-syntax", function (hooks) { setupTest(hooks); @@ -20,14 +19,9 @@ module("Unit | Utility | highlight-syntax", function (hooks) { `; - await highlightSyntax(fixture(), siteSettings, session); + await highlightSyntax(fixture(), siteSettings, {}); - assert.strictEqual( - document - .querySelector("code.lang-ruby.hljs .hljs-keyword") - .innerText.trim(), - "def" - ); + assert.dom("code.lang-ruby.hljs .hljs-keyword", fixture()).hasText("def"); }); test("highlighting code with HTML intermingled", async function (assert) { @@ -43,19 +37,11 @@ module("Unit | Utility | highlight-syntax", function (hooks) { `; - await highlightSyntax(fixture(), siteSettings, session); + await highlightSyntax(fixture(), siteSettings, {}); - assert.strictEqual( - document - .querySelector("code.lang-ruby.hljs .hljs-keyword") - .innerText.trim(), - "def" - ); + assert.dom("code.lang-ruby.hljs .hljs-keyword", fixture()).hasText("def"); // Checks if HTML structure was preserved - assert.strictEqual( - document.querySelectorAll("code.lang-ruby.hljs ol li").length, - 3 - ); + assert.dom("code.lang-ruby.hljs ol li", fixture()).exists({ count: 3 }); }); }); diff --git a/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js b/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js index 9f1054fa457..9d6bbbe0aba 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js @@ -38,12 +38,11 @@ module("Unit | Utility | link-mentions", function (hooks) { `)[0]; await linkSeenMentions(root); - assert.strictEqual(root.querySelector("a").innerText, "@valid_user"); - assert.strictEqual(root.querySelectorAll("a")[1].innerText, "@valid_group"); - assert.strictEqual( - root.querySelector("a[data-mentionable-user-count]").innerText, - "@mentionable_group" - ); + assert.dom(root.querySelectorAll("a")[0]).hasText("@valid_user"); + assert.dom(root.querySelectorAll("a")[1]).hasText("@valid_group"); + assert + .dom("a[data-mentionable-user-count]", root) + .hasText("@mentionable_group"); assert.dom("span.mention", root).hasHtml("@invalid"); }); }); diff --git a/plugins/chat/test/javascripts/components/channel-icon-test.gjs b/plugins/chat/test/javascripts/components/channel-icon-test.gjs index df328546d77..66169433b55 100644 --- a/plugins/chat/test/javascripts/components/channel-icon-test.gjs +++ b/plugins/chat/test/javascripts/components/channel-icon-test.gjs @@ -79,13 +79,9 @@ module("Discourse Chat | Component | ", function (hooks) { ], }); channel.chatable.group = true; - const users = channel.chatable.users; await render(); - assert.strictEqual( - parseInt(query(".chat-channel-icon.--users-count").innerText.trim(), 10), - users.length - ); + assert.dom(".chat-channel-icon.--users-count").hasText("3"); }); }); diff --git a/plugins/chat/test/javascripts/components/channel-name-test.gjs b/plugins/chat/test/javascripts/components/channel-name-test.gjs index cfde1462d14..d0ca3b6f1e8 100644 --- a/plugins/chat/test/javascripts/components/channel-name-test.gjs +++ b/plugins/chat/test/javascripts/components/channel-name-test.gjs @@ -3,7 +3,6 @@ import { render } from "@ember/test-helpers"; import { module, test } from "qunit"; import CoreFabricators from "discourse/lib/fabricators"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import ChannelName from "discourse/plugins/chat/discourse/components/channel-name"; import ChatFabricators from "discourse/plugins/chat/discourse/lib/fabricators"; import { CHATABLE_TYPES } from "discourse/plugins/chat/discourse/models/chat-channel"; @@ -42,10 +41,7 @@ module("Discourse Chat | Component | ", function (hooks) { await render(); - assert.strictEqual( - query(CHANNEL_NAME_LABEL).innerText.trim(), - user.username - ); + assert.dom(CHANNEL_NAME_LABEL).hasText(user.username); }); test("dm channel - multiple users", async function (assert) { @@ -61,10 +57,7 @@ module("Discourse Chat | Component | ", function (hooks) { await render(); - assert.strictEqual( - query(CHANNEL_NAME_LABEL).innerText.trim(), - users.mapBy("username").join(", ") - ); + assert.dom(CHANNEL_NAME_LABEL).hasText(users.mapBy("username").join(", ")); }); test("dm channel - self", async function (assert) { @@ -76,10 +69,7 @@ module("Discourse Chat | Component | ", function (hooks) { await render(); - assert.strictEqual( - query(CHANNEL_NAME_LABEL).innerText.trim(), - this.currentUser.username - ); + assert.dom(CHANNEL_NAME_LABEL).hasText(this.currentUser.username); }); test("dm channel - prefers name", async function (assert) { @@ -99,10 +89,7 @@ module("Discourse Chat | Component | ", function (hooks) { await render(); - assert.strictEqual( - query(CHANNEL_NAME_LABEL).innerText.trim(), - users.mapBy("name").join(", ") - ); + assert.dom(CHANNEL_NAME_LABEL).hasText(users.mapBy("name").join(", ")); }); test("unreadIndicator", async function (assert) { diff --git a/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js b/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js index b4d793fb742..6b57a99441a 100644 --- a/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js +++ b/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js @@ -3,7 +3,6 @@ import { render } from "@ember/test-helpers"; import hbs from "htmlbars-inline-precompile"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import ChatFabricators from "discourse/plugins/chat/discourse/lib/fabricators"; module( @@ -29,11 +28,9 @@ module( test("channel title", async function (assert) { await render(hbs``); - assert.strictEqual( - query(".chat-channel-name__label").innerText, - this.channel.title, - "it shows the channel title" - ); + assert + .dom(".chat-channel-name__label") + .hasText(this.channel.title, "shows the channel title"); assert .dom(".chat-channel-icon.--category-badge") @@ -43,11 +40,9 @@ module( test("channel description", async function (assert) { await render(hbs``); - assert.strictEqual( - query(".chat-channel-preview-card__description").innerText, - this.channel.description, - "the channel description is shown" - ); + assert + .dom(".chat-channel-preview-card__description") + .hasText(this.channel.description, "the channel description is shown"); }); test("no channel description", async function (assert) { diff --git a/plugins/chat/test/javascripts/components/chat-message-collapser-test.js b/plugins/chat/test/javascripts/components/chat-message-collapser-test.js index 7c928193463..168c7396d6c 100644 --- a/plugins/chat/test/javascripts/components/chat-message-collapser-test.js +++ b/plugins/chat/test/javascripts/components/chat-message-collapser-test.js @@ -2,7 +2,7 @@ import { click, render } from "@ember/test-helpers"; import hbs from "htmlbars-inline-precompile"; import { module, skip, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query, queryAll } from "discourse/tests/helpers/qunit-helpers"; +import { queryAll } from "discourse/tests/helpers/qunit-helpers"; const youtubeCooked = "

written text

" + @@ -107,21 +107,13 @@ module( const text = queryAll(".chat-message-collapser p"); assert.strictEqual(text.length, 3, "shows all written text"); - assert.strictEqual( - text[0].innerText, - "written text", - "first line of written text" - ); - assert.strictEqual( - text[1].innerText, - "more written text", - "third line of written text" - ); - assert.strictEqual( - text[2].innerText, - "and even more", - "fifth line of written text" - ); + assert.dom(text[0]).hasText("written text", "first line of written text"); + assert + .dom(text[1]) + .hasText("more written text", "third line of written text"); + assert + .dom(text[2]) + .hasText("and even more", "fifth line of written text"); }); test("collapses and expands cooked youtube", async function (assert) { @@ -188,11 +180,9 @@ module( hbs`` ); - assert.true( - query(".chat-message-collapser-link-small").innerText.includes( - "tomtom.jpeg" - ) - ); + assert + .dom(".chat-message-collapser-link-small") + .includesText("tomtom.jpeg"); }); test("shows number of files for multiple images", async function (assert) { @@ -203,11 +193,7 @@ module( hbs`` ); - assert.true( - query(".chat-message-collapser-link-small").innerText.includes( - "2 files" - ) - ); + assert.dom(".chat-message-collapser-link-small").includesText("2 files"); }); test("collapses and expands images", async function (assert) { @@ -251,12 +237,10 @@ module( const links = queryAll("a.chat-message-collapser-link-small"); - assert.true(links[0].innerText.trim().includes("avatar.png")); + assert.dom(links[0]).includesText("avatar.png"); assert.dom(links[0]).hasAttribute("href", "/images/avatar.png"); - assert.true( - links[1].innerText.trim().includes("d-logo-sketch-small.png") - ); + assert.dom(links[1]).includesText("d-logo-sketch-small.png"); assert .dom(links[1]) .hasAttribute("href", "/images/d-logo-sketch-small.png"); @@ -270,9 +254,9 @@ module( const text = queryAll(".chat-message-collapser p"); assert.strictEqual(text.length, 5, "shows all written text"); - assert.strictEqual(text[0].innerText, "written text"); - assert.strictEqual(text[2].innerText, "more written text"); - assert.strictEqual(text[4].innerText, "and even more"); + assert.dom(text[0]).hasText("written text"); + assert.dom(text[2]).hasText("more written text"); + assert.dom(text[4]).hasText("and even more"); }); test("collapses and expands animated image onebox", async function (assert) { @@ -325,10 +309,10 @@ module( const links = queryAll("a.chat-message-collapser-link-small"); - assert.true(links[0].innerText.trim().includes("http://cat1.com")); + assert.dom(links[0]).includesText("http://cat1.com"); assert.dom(links[0]).hasAttribute("href", "http://cat1.com/"); - assert.true(links[1].innerText.trim().includes("http://cat2.com")); + assert.dom(links[1]).includesText("http://cat2.com"); assert.dom(links[1]).hasAttribute("href", "http://cat2.com/"); }); @@ -340,9 +324,9 @@ module( const text = queryAll(".chat-message-collapser p"); assert.strictEqual(text.length, 5, "shows all written text"); - assert.strictEqual(text[0].innerText, "written text"); - assert.strictEqual(text[2].innerText, "more written text"); - assert.strictEqual(text[4].innerText, "and even more"); + assert.dom(text[0]).hasText("written text"); + assert.dom(text[2]).hasText("more written text"); + assert.dom(text[4]).hasText("and even more"); }); test("collapses and expands image oneboxes", async function (assert) { @@ -414,12 +398,10 @@ module( const links = queryAll("a.chat-message-collapser-link-small"); - assert.true(links[0].innerText.trim().includes("shows alt")); + assert.dom(links[0]).includesText("shows alt"); assert.dom(links[0]).hasAttribute("href", "/images/avatar.png"); - assert.true( - links[1].innerText.trim().includes("/images/d-logo-sketch-small.png") - ); + assert.dom(links[1]).includesText("/images/d-logo-sketch-small.png"); assert .dom(links[1]) .hasAttribute("href", "/images/d-logo-sketch-small.png"); @@ -433,9 +415,9 @@ module( const text = queryAll(".chat-message-collapser p"); assert.strictEqual(text.length, 6, "shows all written text"); - assert.strictEqual(text[0].innerText, "written text"); - assert.strictEqual(text[2].innerText, "more written text"); - assert.strictEqual(text[4].innerText, "and even more"); + assert.dom(text[0]).hasText("written text"); + assert.dom(text[2]).hasText("more written text"); + assert.dom(text[4]).hasText("and even more"); }); test("collapses and expands images", async function (assert) { @@ -523,11 +505,9 @@ module( await render(hbs``); - assert.true( - query(".chat-message-collapser-link-small").innerText.includes( - "Le tomtom album" - ) - ); + assert + .dom(".chat-message-collapser-link-small") + .includesText("Le tomtom album"); }); test("shows all user written text", async function (assert) { @@ -538,8 +518,8 @@ module( const text = queryAll(".chat-message-collapser p"); assert.strictEqual(text.length, 2, "shows all written text"); - assert.strictEqual(text[0].innerText, "written text"); - assert.strictEqual(text[1].innerText, "more written text"); + assert.dom(text[0]).hasText("written text"); + assert.dom(text[1]).hasText("more written text"); }); test("collapses and expands images", async function (assert) { diff --git a/plugins/chat/test/javascripts/components/chat-notices-test.js b/plugins/chat/test/javascripts/components/chat-notices-test.js index 54f7b312981..ee64b221898 100644 --- a/plugins/chat/test/javascripts/components/chat-notices-test.js +++ b/plugins/chat/test/javascripts/components/chat-notices-test.js @@ -5,7 +5,7 @@ import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; import pretender from "discourse/tests/helpers/create-pretender"; import { queryAll } from "discourse/tests/helpers/qunit-helpers"; -import { i18n } from 'discourse-i18n'; +import { i18n } from "discourse-i18n"; import ChatFabricators from "discourse/plugins/chat/discourse/lib/fabricators"; module("Discourse Chat | Component | chat-notice", function (hooks) { @@ -35,8 +35,8 @@ module("Discourse Chat | Component | chat-notice", function (hooks) { assert.strictEqual(notices.length, 2, "Two notices are rendered"); - assert.true(notices[0].innerText.includes("hello")); - assert.true(notices[1].innerText.includes("goodbye")); + assert.dom(notices[0]).includesText("hello"); + assert.dom(notices[1]).includesText("goodbye"); }); test("Notices can be cleared", async function (assert) { diff --git a/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js b/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js index bfde33b42b6..ef3b6e0fd7e 100644 --- a/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js +++ b/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js @@ -7,7 +7,6 @@ import { joinChannel, leaveChannel, } from "discourse/tests/helpers/presence-pretender"; -import { query } from "discourse/tests/helpers/qunit-helpers"; import ChatFabricators from "discourse/plugins/chat/discourse/lib/fabricators"; async function addUser(id, username, channelName = "/chat-reply/1") { @@ -44,10 +43,7 @@ module( await addUser(1, "sam", "/chat-reply/1/thread/1"); - assert.strictEqual( - query(".chat-replying-indicator__text").innerText, - "sam is typing" - ); + assert.dom(".chat-replying-indicator__text").hasText("sam is typing"); }); test("doesn’t leak in other indicators", async function (assert) { @@ -81,10 +77,7 @@ module( await addUser(1, "sam"); - assert.strictEqual( - query(".chat-replying-indicator__text").innerText, - `sam is typing` - ); + assert.dom(".chat-replying-indicator__text").hasText("sam is typing"); }); test("displays indicator when 2 or 3 users are replying", async function (assert) { diff --git a/plugins/chat/test/javascripts/components/chat-user-display-name-test.js b/plugins/chat/test/javascripts/components/chat-user-display-name-test.js index 3fdbe374379..659e02ef7f2 100644 --- a/plugins/chat/test/javascripts/components/chat-user-display-name-test.js +++ b/plugins/chat/test/javascripts/components/chat-user-display-name-test.js @@ -2,11 +2,6 @@ import { render } from "@ember/test-helpers"; import hbs from "htmlbars-inline-precompile"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { query } from "discourse/tests/helpers/qunit-helpers"; - -function displayName() { - return query(".chat-user-display-name").innerText.trim(); -} module( "Discourse Chat | Component | chat-user-display-name | prioritize username in UX", @@ -19,7 +14,7 @@ module( await render(hbs``); - assert.strictEqual(displayName(), "bob"); + assert.dom(".chat-user-display-name").hasText("bob"); }); test("username and name", async function (assert) { @@ -28,7 +23,7 @@ module( await render(hbs``); - assert.strictEqual(displayName(), "bob Bobcat"); + assert.dom(".chat-user-display-name").hasText("bob Bobcat"); }); } ); @@ -44,7 +39,7 @@ module( await render(hbs``); - assert.strictEqual(displayName(), "bob"); + assert.dom(".chat-user-display-name").hasText("bob"); }); test("name and username", async function (assert) { @@ -53,7 +48,7 @@ module( await render(hbs``); - assert.strictEqual(displayName(), "Bobcat bob"); + assert.dom(".chat-user-display-name").hasText("Bobcat bob"); }); } ); diff --git a/plugins/poll/test/javascripts/acceptance/poll-results-test.js b/plugins/poll/test/javascripts/acceptance/poll-results-test.js index 44cf0a8d5ab..4ab1724ec95 100644 --- a/plugins/poll/test/javascripts/acceptance/poll-results-test.js +++ b/plugins/poll/test/javascripts/acceptance/poll-results-test.js @@ -3,9 +3,8 @@ import { test } from "qunit"; import { acceptance, publishToMessageBus, - query, } from "discourse/tests/helpers/qunit-helpers"; -import { i18n } from 'discourse-i18n'; +import { i18n } from "discourse-i18n"; acceptance("Poll results", function (needs) { needs.user(); @@ -1117,25 +1116,21 @@ acceptance("Poll results", function (needs) { test("can load more voters - ranked choice", async function (assert) { await visit("/t/load-more-poll-voters-ranked-choice/135"); - assert.strictEqual( - query( + assert + .dom( ".poll-container .discourse-poll-ranked_choice-results .tab-container .tab.nav-item.active button" - ).innerText, - i18n("poll.results.tabs.outcome"), - "Outcome tab is active" - ); + ) + .hasText(i18n("poll.results.tabs.outcome"), "Outcome tab is active"); await click( ".poll-container .discourse-poll-ranked_choice-results .tab-container .tab.nav-item:not(.active) button" ); - assert.strictEqual( - query( + assert + .dom( ".poll-container .discourse-poll-ranked_choice-results .tab-container .tab.nav-item.active button" - ).innerText, - i18n("poll.results.tabs.votes"), - "Votes tab is active" - ); + ) + .hasText(i18n("poll.results.tabs.votes"), "Votes tab is active"); assert .dom( diff --git a/plugins/poll/test/javascripts/component/poll-results-standard-test.js b/plugins/poll/test/javascripts/component/poll-results-standard-test.js index d6e4c7d4df2..789cdada82a 100644 --- a/plugins/poll/test/javascripts/component/poll-results-standard-test.js +++ b/plugins/poll/test/javascripts/component/poll-results-standard-test.js @@ -3,7 +3,7 @@ import hbs from "htmlbars-inline-precompile"; import { module, test } from "qunit"; import { setupRenderingTest } from "discourse/tests/helpers/component-test"; import { queryAll } from "discourse/tests/helpers/qunit-helpers"; -import { i18n } from 'discourse-i18n'; +import { i18n } from "discourse-i18n"; const TWO_OPTIONS = [ { id: "1ddc47be0d2315b9711ee8526ca9d83f", html: "This", votes: 5, rank: 0 }, @@ -62,8 +62,8 @@ module("Poll | Component | poll-results-standard", function (hooks) { @fetchVoters={{this.fetchVoters}} />`); - assert.strictEqual(queryAll(".option .percentage")[0].innerText, "56%"); - assert.strictEqual(queryAll(".option .percentage")[1].innerText, "44%"); + assert.dom(queryAll(".option .percentage")[0]).hasText("56%"); + assert.dom(queryAll(".option .percentage")[1]).hasText("44%"); assert.dom("ul.poll-voters-list").exists(); }); @@ -118,8 +118,8 @@ module("Poll | Component | poll-results-standard", function (hooks) { @fetchVoters={{this.fetchVoters}} />`); - assert.strictEqual(queryAll(".option .percentage")[0].innerText, "56%"); - assert.strictEqual(queryAll(".option .percentage")[1].innerText, "44%"); + assert.dom(queryAll(".option .percentage")[0]).hasText("56%"); + assert.dom(queryAll(".option .percentage")[1]).hasText("44%"); }); test("options in ascending order", async function (assert) { @@ -146,20 +146,14 @@ module("Poll | Component | poll-results-standard", function (hooks) { />`); let percentages = queryAll(".option .percentage"); - assert.strictEqual(percentages[0].innerText, "41%"); - assert.strictEqual(percentages[1].innerText, "33%"); - assert.strictEqual(percentages[2].innerText, "16%"); - assert.strictEqual(percentages[3].innerText, "8%"); + assert.dom(percentages[0]).hasText("41%"); + assert.dom(percentages[1]).hasText("33%"); + assert.dom(percentages[2]).hasText("16%"); + assert.dom(percentages[3]).hasText("8%"); - assert.strictEqual( - queryAll(".option")[3].querySelectorAll("span")[1].innerText, - "a" - ); - assert.strictEqual(percentages[4].innerText, "8%"); - assert.strictEqual( - queryAll(".option")[4].querySelectorAll("span")[1].innerText, - "b" - ); + assert.dom(queryAll(".option")[3].querySelectorAll("span")[1]).hasText("a"); + assert.dom(percentages[4]).hasText("8%"); + assert.dom(queryAll(".option")[4].querySelectorAll("span")[1]).hasText("b"); }); test("options in ascending order, showing absolute vote number", async function (assert) {