DEV: Extensively use qunit-dom's hasText (#30012)
This commit is contained in:
parent
d93967e2fb
commit
dfb74d90c3
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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, {});
|
||||
});
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
);
|
||||
});
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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)")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -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’');
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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");
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
|
|
|
@ -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`<ThemesListItem @theme={{this.theme}} />`);
|
||||
|
||||
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"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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`
|
||||
<MountWidget @widget="post" @model={{this.post}} @args={{this.args}} />`);
|
||||
|
||||
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`
|
||||
<MountWidget @widget="post" @model={{this.post}} @args={{this.args}} />`);
|
||||
|
||||
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`
|
||||
<MountWidget @widget="post" @model={{this.post}} @args={{this.args}} />`);
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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`
|
||||
<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
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");
|
||||
|
|
|
@ -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`
|
||||
<div id="test"></div>
|
||||
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
|||
</pre>
|
||||
`;
|
||||
|
||||
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) {
|
|||
</pre>
|
||||
`;
|
||||
|
||||
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 });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -79,13 +79,9 @@ module("Discourse Chat | Component | <ChannelIcon />", function (hooks) {
|
|||
],
|
||||
});
|
||||
channel.chatable.group = true;
|
||||
const users = channel.chatable.users;
|
||||
|
||||
await render(<template><ChannelIcon @channel={{channel}} /></template>);
|
||||
|
||||
assert.strictEqual(
|
||||
parseInt(query(".chat-channel-icon.--users-count").innerText.trim(), 10),
|
||||
users.length
|
||||
);
|
||||
assert.dom(".chat-channel-icon.--users-count").hasText("3");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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 | <ChannelName />", function (hooks) {
|
|||
|
||||
await render(<template><ChannelName @channel={{channel}} /></template>);
|
||||
|
||||
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 | <ChannelName />", function (hooks) {
|
|||
|
||||
await render(<template><ChannelName @channel={{channel}} /></template>);
|
||||
|
||||
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 | <ChannelName />", function (hooks) {
|
|||
|
||||
await render(<template><ChannelName @channel={{channel}} /></template>);
|
||||
|
||||
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 | <ChannelName />", function (hooks) {
|
|||
|
||||
await render(<template><ChannelName @channel={{channel}} /></template>);
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
||||
|
||||
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`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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 =
|
||||
"<p>written text</p>" +
|
||||
|
@ -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`<ChatMessageCollapser @cooked={{this.cooked}} @uploads={{this.uploads}} />`
|
||||
);
|
||||
|
||||
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`<ChatMessageCollapser @cooked={{this.cooked}} @uploads={{this.uploads}} />`
|
||||
);
|
||||
|
||||
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`<ChatMessageCollapser @cooked={{this.cooked}} />`);
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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`<ChatUserDisplayName @user={{this.user}} />`);
|
||||
|
||||
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`<ChatUserDisplayName @user={{this.user}} />`);
|
||||
|
||||
assert.strictEqual(displayName(), "bob Bobcat");
|
||||
assert.dom(".chat-user-display-name").hasText("bob Bobcat");
|
||||
});
|
||||
}
|
||||
);
|
||||
|
@ -44,7 +39,7 @@ module(
|
|||
|
||||
await render(hbs`<ChatUserDisplayName @user={{this.user}} />`);
|
||||
|
||||
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`<ChatUserDisplayName @user={{this.user}} />`);
|
||||
|
||||
assert.strictEqual(displayName(), "Bobcat bob");
|
||||
assert.dom(".chat-user-display-name").hasText("Bobcat bob");
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue