DEV: Replace `equal()` with `strictEqual()` (#14827)

This commit is contained in:
Jarek Radosz 2021-11-08 10:26:28 +01:00 committed by GitHub
parent 016aa06229
commit d162229758
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
263 changed files with 2827 additions and 2363 deletions

View File

@ -15,7 +15,7 @@ acceptance("Account Created", function () {
await visit("/u/account-created");
assert.ok(exists(".account-created"));
assert.equal(
assert.strictEqual(
queryAll(".account-created .ac-message").text().trim(),
"Hello World",
"it displays the message"
@ -34,7 +34,7 @@ acceptance("Account Created", function () {
await visit("/u/account-created");
assert.ok(exists(".account-created"));
assert.equal(
assert.strictEqual(
queryAll(".account-created .ac-message").text().trim(),
"Hello World",
"it displays the message"
@ -42,9 +42,9 @@ acceptance("Account Created", function () {
await click(".activation-controls .resend");
assert.equal(currentRouteName(), "account-created.resent");
assert.strictEqual(currentRouteName(), "account-created.resent");
const email = queryAll(".account-created .ac-message b").text();
assert.equal(email, "eviltrout@example.com");
assert.strictEqual(email, "eviltrout@example.com");
});
test("account created - update email - cancel", async function (assert) {
@ -59,12 +59,12 @@ acceptance("Account Created", function () {
await click(".activation-controls .edit-email");
assert.equal(currentRouteName(), "account-created.edit-email");
assert.strictEqual(currentRouteName(), "account-created.edit-email");
assert.ok(exists(".activation-controls .btn-primary:disabled"));
await click(".activation-controls .edit-cancel");
assert.equal(currentRouteName(), "account-created.index");
assert.strictEqual(currentRouteName(), "account-created.index");
});
test("account created - update email - submit", async function (assert) {
@ -87,8 +87,8 @@ acceptance("Account Created", function () {
await click(".activation-controls .btn-primary");
assert.equal(currentRouteName(), "account-created.resent");
assert.strictEqual(currentRouteName(), "account-created.resent");
const email = queryAll(".account-created .ac-message b").text();
assert.equal(email, "newemail@example.com");
assert.strictEqual(email, "newemail@example.com");
});
});

View File

@ -14,7 +14,7 @@ acceptance("Admin - Badges - Mass Award", function (needs) {
await click(
'.admin-badge-list-item span[data-badge-name="Both image and icon"]'
);
assert.equal(
assert.strictEqual(
query("label.grant-existing-holders").textContent.trim(),
I18n.t("admin.badges.mass_award.grant_existing_holders"),
"checkbox for granting existing holders is displayed"

View File

@ -51,7 +51,7 @@ acceptance("Admin - Badges - Show", function (needs) {
);
assert.ok(exists(".icon-picker"), "icon picker is visible");
assert.ok(!exists(".image-uploader"), "image uploader is not visible");
assert.equal(query(".icon-picker").textContent.trim(), "fa-rocket");
assert.strictEqual(query(".icon-picker").textContent.trim(), "fa-rocket");
});
test("existing badge that has an image URL", async function (assert) {
@ -92,6 +92,6 @@ acceptance("Admin - Badges - Show", function (needs) {
await click("input#badge-icon");
assert.ok(exists(".icon-picker"), "icon picker is becomes visible");
assert.ok(!exists(".image-uploader"), "image uploader becomes hidden");
assert.equal(query(".icon-picker").textContent.trim(), "fa-rocket");
assert.strictEqual(query(".icon-picker").textContent.trim(), "fa-rocket");
});
});

View File

@ -32,8 +32,8 @@ acceptance("Admin - Emails", function (needs) {
await fillIn("textarea.email-body", EMAIL.trim());
await click(".email-advanced-test button");
assert.equal(queryAll(".text pre").text(), "Hello, this is a test!");
assert.equal(
assert.strictEqual(queryAll(".text pre").text(), "Hello, this is a test!");
assert.strictEqual(
queryAll(".elided pre").text(),
"---\n\nThis part should be elided."
);

View File

@ -20,8 +20,8 @@ acceptance("Admin - Themes - Install modal", function (needs) {
await click(".install-theme-content .inputs .advanced-repo");
await fillIn(branchInput, "tests-passed");
await click(privateRepoCheckbox);
assert.equal(query(urlInput).value, themeUrl, "url input is filled");
assert.equal(
assert.strictEqual(query(urlInput).value, themeUrl, "url input is filled");
assert.strictEqual(
query(branchInput).value,
"tests-passed",
"branch input is filled"
@ -36,8 +36,8 @@ acceptance("Admin - Themes - Install modal", function (needs) {
await click(".create-actions .btn-primary");
await click("#remote");
assert.equal(query(urlInput).value, "", "url input is reset");
assert.equal(query(branchInput).value, "", "branch input is reset");
assert.strictEqual(query(urlInput).value, "", "url input is reset");
assert.strictEqual(query(branchInput).value, "", "branch input is reset");
assert.ok(
!query(privateRepoCheckbox).checked,
"private repo checkbox unchecked"
@ -60,7 +60,7 @@ acceptance("Admin - Themes - Install modal", function (needs) {
await fillIn(urlInput, themeUrl);
await click(".install-theme-content .inputs .advanced-repo");
await click(privateRepoCheckbox);
assert.equal(query(urlInput).value, themeUrl, "url input is filled");
assert.strictEqual(query(urlInput).value, themeUrl, "url input is filled");
assert.ok(
query(privateRepoCheckbox).checked,
"private repo checkbox is checked"
@ -84,7 +84,7 @@ acceptance("Admin - Themes - Install modal", function (needs) {
test("modal can be auto-opened with the right query params", async function (assert) {
await visit("/admin/customize/themes?repoUrl=testUrl&repoName=testName");
assert.ok(query(".admin-install-theme-modal"), "modal is visible");
assert.equal(
assert.strictEqual(
query(".install-theme code").textContent.trim(),
"testUrl",
"repo url is visible"
@ -101,7 +101,7 @@ acceptance("Admin - Themes - Install modal", function (needs) {
),
"no install button is shown for installed themes"
);
assert.equal(
assert.strictEqual(
query(
'.popular-theme-item[data-name="Graceful"] .popular-theme-buttons'
).textContent.trim(),

View File

@ -54,7 +54,7 @@ acceptance("Admin - Site Settings", function (needs) {
test("links to staff action log", async function (assert) {
await visit("/admin/site_settings");
assert.equal(
assert.strictEqual(
queryAll(".row.setting .setting-label h3 a").attr("href"),
"/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22title%22%2C%22action_name%22%3A%22change_site_setting%22%7D&force_refresh=true",
"it links to the staff action log"
@ -64,7 +64,11 @@ acceptance("Admin - Site Settings", function (needs) {
test("changing value updates dirty state", async function (assert) {
await visit("/admin/site_settings");
await fillIn("#setting-filter", " title ");
assert.equal(count(".row.setting"), 1, "filter returns 1 site setting");
assert.strictEqual(
count(".row.setting"),
1,
"filter returns 1 site setting"
);
assert.ok(!exists(".row.setting.overridden"), "setting isn't overriden");
await fillIn(".input-setting-string", "Test");
@ -111,31 +115,31 @@ acceptance("Admin - Site Settings", function (needs) {
test("always shows filtered site settings if a filter is set", async function (assert) {
await visit("/admin/site_settings");
await fillIn("#setting-filter", "title");
assert.equal(count(".row.setting"), 1);
assert.strictEqual(count(".row.setting"), 1);
// navigate away to the "Dashboard" page
await click(".nav.nav-pills li:nth-child(1) a");
assert.equal(count(".row.setting"), 0);
assert.strictEqual(count(".row.setting"), 0);
// navigate back to the "Settings" page
await click(".nav.nav-pills li:nth-child(2) a");
assert.equal(count(".row.setting"), 1);
assert.strictEqual(count(".row.setting"), 1);
});
test("filter settings by plugin name", async function (assert) {
await visit("/admin/site_settings");
await fillIn("#setting-filter", "plugin:discourse-logo");
assert.equal(count(".row.setting"), 1);
assert.strictEqual(count(".row.setting"), 1);
// inexistent plugin
await fillIn("#setting-filter", "plugin:discourse-plugin");
assert.equal(count(".row.setting"), 0);
assert.strictEqual(count(".row.setting"), 0);
});
test("category name is preserved", async function (assert) {
await visit("admin/site_settings/category/basic?filter=menu");
assert.equal(
assert.strictEqual(
currentURL(),
"admin/site_settings/category/basic?filter=menu"
);
@ -145,16 +149,16 @@ acceptance("Admin - Site Settings", function (needs) {
await visit("admin/site_settings");
await click(".admin-nav .basic a");
assert.equal(currentURL(), "/admin/site_settings/category/basic");
assert.strictEqual(currentURL(), "/admin/site_settings/category/basic");
await fillIn("#setting-filter", "menu");
assert.equal(
assert.strictEqual(
currentURL(),
"/admin/site_settings/category/basic?filter=menu"
);
await fillIn("#setting-filter", "contact");
assert.equal(
assert.strictEqual(
currentURL(),
"/admin/site_settings/category/all_results?filter=contact"
);

View File

@ -18,14 +18,14 @@ acceptance("Admin - Site Texts", function (needs) {
await fillIn(".site-text-search", "Test");
assert.equal(currentURL(), "/admin/customize/site_texts?q=Test");
assert.strictEqual(currentURL(), "/admin/customize/site_texts?q=Test");
assert.ok(exists(".site-text"));
assert.ok(exists(".site-text:not(.overridden)"));
assert.ok(exists(".site-text.overridden"));
// Only show overridden
await click(".search-area .filter-options input");
assert.equal(
assert.strictEqual(
currentURL(),
"/admin/customize/site_texts?overridden=true&q=Test"
);
@ -37,7 +37,7 @@ acceptance("Admin - Site Texts", function (needs) {
test("edit and revert a site text by key", async function (assert) {
await visit("/admin/customize/site_texts/site.test?locale=en");
assert.equal(queryAll(".title h3").text(), "site.test");
assert.strictEqual(queryAll(".title h3").text(), "site.test");
assert.ok(!exists(".saved"));
assert.ok(!exists(".revert-site-text"));

View File

@ -35,7 +35,7 @@ acceptance("Admin - Suspend User", function (needs) {
await visit("/admin/users/1234/regular");
await click(".suspend-user");
assert.equal(count(".suspend-user-modal:visible"), 1);
assert.strictEqual(count(".suspend-user-modal:visible"), 1);
await click(".d-modal-cancel");
@ -46,24 +46,24 @@ acceptance("Admin - Suspend User", function (needs) {
await visit("/admin/users/1234/regular");
await click(".suspend-user");
assert.equal(count(".suspend-user-modal:visible"), 1);
assert.strictEqual(count(".suspend-user-modal:visible"), 1);
await fillIn("input.suspend-reason", "for breaking the rules");
await fillIn(".suspend-message", "this is an email reason why");
await click(".d-modal-cancel");
assert.equal(count(".bootbox.modal:visible"), 1);
assert.strictEqual(count(".bootbox.modal:visible"), 1);
await click(".modal-footer .btn-default");
assert.equal(count(".suspend-user-modal:visible"), 1);
assert.equal(
assert.strictEqual(count(".suspend-user-modal:visible"), 1);
assert.strictEqual(
query(".suspend-message").value,
"this is an email reason why"
);
await click(".d-modal-cancel");
assert.equal(count(".bootbox.modal:visible"), 1);
assert.strictEqual(count(".bootbox.modal:visible"), 1);
assert.ok(!exists(".suspend-user-modal:visible"));
await click(".modal-footer .btn-primary");
@ -81,7 +81,11 @@ acceptance("Admin - Suspend User", function (needs) {
await click(".suspend-user");
assert.equal(count(".perform-suspend[disabled]"), 1, "disabled by default");
assert.strictEqual(
count(".perform-suspend[disabled]"),
1,
"disabled by default"
);
await suspendUntilCombobox.expand();
await suspendUntilCombobox.selectRowByValue("tomorrow");

View File

@ -4,13 +4,13 @@ import I18n from "I18n";
import { test } from "qunit";
function assertNoSecondary(assert) {
assert.equal(
assert.strictEqual(
queryAll(".display-row.email .value a").text(),
"eviltrout@example.com",
"it should display the primary email"
);
assert.equal(
assert.strictEqual(
queryAll(".display-row.secondary-emails .value").text().trim(),
I18n.t("user.email.no_secondary"),
"it should not display secondary emails"
@ -18,13 +18,13 @@ function assertNoSecondary(assert) {
}
function assertMultipleSecondary(assert, firstEmail, secondEmail) {
assert.equal(
assert.strictEqual(
queryAll(".display-row.secondary-emails .value li:first-of-type a").text(),
firstEmail,
"it should display the first secondary email"
);
assert.equal(
assert.strictEqual(
queryAll(".display-row.secondary-emails .value li:last-of-type a").text(),
secondEmail,
"it should display the second secondary email"
@ -43,7 +43,7 @@ acceptance("Admin - User Emails", function (needs) {
test("viewing self with multiple secondary emails", async function (assert) {
await visit("/admin/users/3/markvanlan");
assert.equal(
assert.strictEqual(
queryAll(".display-row.email .value a").text(),
"markvanlan@example.com",
"it should display the user's primary email"

View File

@ -101,19 +101,25 @@ acceptance("Admin - User Index", function (needs) {
test("can edit username", async function (assert) {
await visit("/admin/users/2/sam");
assert.equal(queryAll(".display-row.username .value").text().trim(), "sam");
assert.strictEqual(
queryAll(".display-row.username .value").text().trim(),
"sam"
);
// Trying cancel.
await click(".display-row.username button");
await fillIn(".display-row.username .value input", "new-sam");
await click(".display-row.username a");
assert.equal(queryAll(".display-row.username .value").text().trim(), "sam");
assert.strictEqual(
queryAll(".display-row.username .value").text().trim(),
"sam"
);
// Doing edit.
await click(".display-row.username button");
await fillIn(".display-row.username .value input", "new-sam");
await click(".display-row.username button");
assert.equal(
assert.strictEqual(
queryAll(".display-row.username .value").text().trim(),
"new-sam"
);
@ -122,7 +128,7 @@ acceptance("Admin - User Index", function (needs) {
test("shows the number of post edits", async function (assert) {
await visit("/admin/users/1/eviltrout");
assert.equal(queryAll(".post-edits-count .value").text().trim(), "6");
assert.strictEqual(queryAll(".post-edits-count .value").text().trim(), "6");
assert.ok(
exists(".post-edits-count .controls .btn.btn-icon"),
@ -137,7 +143,7 @@ acceptance("Admin - User Index", function (needs) {
await click(".post-edits-count .controls .btn.btn-icon");
assert.equal(
assert.strictEqual(
currentURL(),
`/admin/reports/post_edits?filters=${filter}`,
"it redirects to the right admin report"
@ -156,7 +162,7 @@ acceptance("Admin - User Index", function (needs) {
test("will clear unsaved groups when switching user", async function (assert) {
await visit("/admin/users/2/sam");
assert.equal(
assert.strictEqual(
queryAll(".display-row.username .value").text().trim(),
"sam",
"the name should be correct"
@ -165,11 +171,15 @@ acceptance("Admin - User Index", function (needs) {
const groupChooser = selectKit(".group-chooser");
await groupChooser.expand();
await groupChooser.selectRowByValue(42);
assert.equal(groupChooser.header().value(), 42, "group should be set");
assert.strictEqual(
groupChooser.header().value(),
"42",
"group should be set"
);
await visit("/admin/users/1/eviltrout");
assert.equal(
assert.strictEqual(
queryAll(".display-row.username .value").text().trim(),
"eviltrout",
"the name should be correct"
@ -185,7 +195,7 @@ acceptance("Admin - User Index", function (needs) {
await visit("/admin/users/3/user1");
await click(".grant-admin");
assert.ok(exists(".bootbox"));
assert.equal(
assert.strictEqual(
I18n.t("admin.user.grant_admin_confirm"),
query(".modal-body").textContent.trim()
);

View File

@ -48,7 +48,7 @@ acceptance("Admin - Users List", function (needs) {
await click(".show-emails");
assert.equal(
assert.strictEqual(
queryAll(".users-list .user:nth-child(1) .email").text(),
"<small>eviltrout@example.com</small>",
"shows the emails"
@ -56,7 +56,7 @@ acceptance("Admin - Users List", function (needs) {
await click(".hide-emails");
assert.equal(
assert.strictEqual(
queryAll(".users-list .user:nth-child(1) .email").text(),
"",
"hides the emails"
@ -71,7 +71,7 @@ acceptance("Admin - Users List", function (needs) {
await visit("/admin/users/list/active");
assert.equal(queryAll(".admin-title h2").text(), activeTitle);
assert.strictEqual(queryAll(".admin-title h2").text(), activeTitle);
assert.ok(
queryAll(".users-list .user:nth-child(1) .username")
.text()
@ -80,7 +80,7 @@ acceptance("Admin - Users List", function (needs) {
await click('a[href="/admin/users/list/new"]');
assert.equal(queryAll(".admin-title h2").text(), suspectTitle);
assert.strictEqual(queryAll(".admin-title h2").text(), suspectTitle);
assert.ok(
queryAll(".users-list .user:nth-child(1) .username")
.text()
@ -89,7 +89,7 @@ acceptance("Admin - Users List", function (needs) {
await click(".users-list .sortable:nth-child(4)");
assert.equal(queryAll(".admin-title h2").text(), suspectTitle);
assert.strictEqual(queryAll(".admin-title h2").text(), suspectTitle);
assert.ok(
queryAll(".users-list .user:nth-child(1) .username")
.text()
@ -98,7 +98,7 @@ acceptance("Admin - Users List", function (needs) {
await click('a[href="/admin/users/list/active"]');
assert.equal(queryAll(".admin-title h2").text(), activeTitle);
assert.strictEqual(queryAll(".admin-title h2").text(), activeTitle);
assert.ok(
queryAll(".users-list .user:nth-child(1) .username")
.text()

View File

@ -27,7 +27,7 @@ acceptance("Admin - Watched Words", function (needs) {
await fillIn(".admin-controls .controls input[type=text]", "li");
assert.equal(
assert.strictEqual(
count(".watched-words-list .watched-word"),
1,
"When filtering, show words even if checkbox is unchecked."
@ -67,7 +67,7 @@ acceptance("Admin - Watched Words", function (needs) {
found.push(true);
}
});
assert.equal(found.length, 1);
assert.strictEqual(found.length, 1);
});
test("remove words", async function (assert) {
@ -84,23 +84,23 @@ acceptance("Admin - Watched Words", function (needs) {
await click(`#${$(word).attr("id")} .delete-word-record`);
assert.equal(count(".watched-words-list .watched-word"), 2);
assert.strictEqual(count(".watched-words-list .watched-word"), 2);
});
test("test modal - replace", async function (assert) {
await visit("/admin/customize/watched_words/action/replace");
await click(".watched-word-test");
await fillIn(".modal-body textarea", "Hi there!");
assert.equal(find(".modal-body li .match").text(), "Hi");
assert.equal(find(".modal-body li .replacement").text(), "hello");
assert.strictEqual(find(".modal-body li .match").text(), "Hi");
assert.strictEqual(find(".modal-body li .replacement").text(), "hello");
});
test("test modal - tag", async function (assert) {
await visit("/admin/customize/watched_words/action/tag");
await click(".watched-word-test");
await fillIn(".modal-body textarea", "Hello world!");
assert.equal(find(".modal-body li .match").text(), "Hello");
assert.equal(find(".modal-body li .tag").text(), "greeting");
assert.strictEqual(find(".modal-body li .match").text(), "Hello");
assert.strictEqual(find(".modal-body li .tag").text(), "greeting");
});
});
@ -131,6 +131,6 @@ acceptance("Admin - Watched Words - Bad regular expressions", function (needs) {
test("shows an error message if regex is invalid", async function (assert) {
await visit("/admin/customize/watched_words/action/block");
assert.equal(count(".admin-watched-words .alert-error"), 1);
assert.strictEqual(count(".admin-watched-words .alert-error"), 1);
});
});

View File

@ -22,7 +22,7 @@ acceptance("Auth Complete", function (needs) {
test("when login not required", async function (assert) {
await visit("/");
assert.equal(
assert.strictEqual(
currentRouteName(),
"discovery.latest",
"it stays on the homepage"
@ -38,7 +38,11 @@ acceptance("Auth Complete", function (needs) {
this.siteSettings.login_required = true;
await visit("/");
assert.equal(currentRouteName(), "login", "it redirects to the login page");
assert.strictEqual(
currentRouteName(),
"login",
"it redirects to the login page"
);
assert.ok(
exists("#discourse-modal div.create-account-body"),

View File

@ -167,7 +167,10 @@ acceptance("Bookmarking", function (needs) {
exists(".bookmark-options-panel"),
"it should reopen the options panel"
);
assert.equal(selectKit(".bookmark-option-selector").header().value(), 1);
assert.strictEqual(
selectKit(".bookmark-option-selector").header().value(),
"1"
);
});
test("Saving a bookmark with no reminder or name", async function (assert) {
@ -236,17 +239,17 @@ acceptance("Bookmarking", function (needs) {
await click("#tap_tile_tomorrow");
await openEditBookmarkModal();
assert.equal(
assert.strictEqual(
queryAll("#bookmark-name").val(),
"Test name",
"it should prefill the bookmark name"
);
assert.equal(
assert.strictEqual(
queryAll("#custom-date > input").val(),
tomorrow,
"it should prefill the bookmark date"
);
assert.equal(
assert.strictEqual(
queryAll("#custom-time").val(),
"08:00",
"it should prefill the bookmark time"
@ -265,17 +268,17 @@ acceptance("Bookmarking", function (needs) {
await click("#tap_tile_post_local_date");
await openEditBookmarkModal();
assert.equal(
assert.strictEqual(
queryAll("#bookmark-name").val(),
"Test name",
"it should prefill the bookmark name"
);
assert.equal(
assert.strictEqual(
queryAll("#custom-date > input").val(),
postDateFormatted,
"it should prefill the bookmark date"
);
assert.equal(
assert.strictEqual(
queryAll("#custom-time").val(),
"10:35",
"it should prefill the bookmark time"
@ -342,7 +345,7 @@ acceptance("Bookmarking", function (needs) {
await openBookmarkModal(1);
await click("#save-bookmark");
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.edit_bookmark"),
"A topic level bookmark button has a label 'Edit Bookmark'"
@ -360,7 +363,7 @@ acceptance("Bookmarking", function (needs) {
await visit("/t/internationalization-localization/280");
await click("#topic-footer-button-bookmark");
assert.equal(
assert.strictEqual(
query("#discourse-modal-title").innerText,
I18n.t("post.bookmarks.create_for_topic"),
"The create modal says creating a topic bookmark"
@ -373,7 +376,7 @@ acceptance("Bookmarking", function (needs) {
"the first post is not marked as being bookmarked"
);
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.edit_bookmark"),
"A topic level bookmark button has a label 'Edit Bookmark'"
@ -381,7 +384,7 @@ acceptance("Bookmarking", function (needs) {
await click("#topic-footer-button-bookmark");
assert.equal(
assert.strictEqual(
query("#discourse-modal-title").innerText,
I18n.t("post.bookmarks.edit_for_topic"),
"The edit modal says editing a topic bookmark"
@ -392,7 +395,7 @@ acceptance("Bookmarking", function (needs) {
await click("#topic-footer-button-bookmark");
assert.equal(
assert.strictEqual(
query("input#bookmark-name").value,
"Test name",
"The topic level bookmark editing preserves the values entered"
@ -409,7 +412,7 @@ acceptance("Bookmarking", function (needs) {
);
// deleting all bookmarks in the topic
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.clear_bookmarks"),
"the footer button says Clear Bookmarks because there is more than one"
@ -421,7 +424,7 @@ acceptance("Bookmarking", function (needs) {
!exists(".topic-post:first-child button.bookmark.bookmarked"),
"the first post bookmark is deleted"
);
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.title"),
"the topic level bookmark is deleted"
@ -433,7 +436,7 @@ acceptance("Bookmarking", function (needs) {
await click("#topic-footer-button-bookmark");
await click("#save-bookmark");
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.edit_bookmark"),
"A topic level bookmark button has a label 'Edit Bookmark'"
@ -456,7 +459,7 @@ acceptance("Bookmarking", function (needs) {
await click(".bootbox.modal .btn-primary");
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.title"),
"A topic level bookmark button no longer says 'Edit Bookmark' after deletion"
@ -468,7 +471,7 @@ acceptance("Bookmarking", function (needs) {
await openBookmarkModal(2);
await click("#save-bookmark");
assert.equal(
assert.strictEqual(
query("#topic-footer-button-bookmark").innerText,
I18n.t("bookmarked.edit_bookmark"),
"A topic level bookmark button has a label 'Edit Bookmark'"

View File

@ -60,7 +60,7 @@ acceptance("Category Banners", function (needs) {
await click(".modal-footer>.btn-primary");
assert.ok(!visible(".bootbox.modal"), "it closes the modal");
assert.ok(visible(".category-read-only-banner"), "it shows a banner");
assert.equal(
assert.strictEqual(
count(".category-read-only-banner .inner"),
1,
"it allows staff to embed html in the message"

View File

@ -22,6 +22,6 @@ acceptance("CategoryChooser", function (needs) {
test("prefill category when category_id is set", async function (assert) {
await visit("/new-topic?category_id=1");
assert.equal(selectKit(".category-chooser").header().value(), 1);
assert.strictEqual(selectKit(".category-chooser").header().value(), "1");
});
});

View File

@ -17,10 +17,10 @@ acceptance("Category Edit - security", function (needs) {
const firstRow = queryAll(".row-body").first();
const badgeName = firstRow.find(".group-name-label").text();
assert.equal(badgeName, "everyone");
assert.strictEqual(badgeName, "everyone");
const permission = firstRow.find(".d-icon-check-square");
assert.equal(permission.length, 3);
assert.strictEqual(permission.length, 3);
});
test("removing a permission", async function (assert) {
@ -58,8 +58,8 @@ acceptance("Category Edit - security", function (needs) {
const addedRow = queryAll(".row-body").last();
assert.equal(addedRow.find(".group-name-label").text(), "staff");
assert.equal(
assert.strictEqual(addedRow.find(".group-name-label").text(), "staff");
assert.strictEqual(
addedRow.find(".d-icon-check-square").length,
3,
"new row permissions match default 'everyone' permissions"
@ -78,12 +78,16 @@ acceptance("Category Edit - security", function (needs) {
await availableGroups.expand();
await availableGroups.selectRowByValue("everyone");
assert.equal(count(".row-body"), 1, "adds back the permission tp the list");
assert.strictEqual(
count(".row-body"),
1,
"adds back the permission tp the list"
);
const firstRow = queryAll(".row-body").first();
assert.equal(firstRow.find(".group-name-label").text(), "everyone");
assert.equal(
assert.strictEqual(firstRow.find(".group-name-label").text(), "everyone");
assert.strictEqual(
firstRow.find(".d-icon-check-square").length,
1,
"adds only 'See' permission for a new row"
@ -97,7 +101,7 @@ acceptance("Category Edit - security", function (needs) {
const everyoneRow = queryAll(".row-body").first();
assert.equal(
assert.strictEqual(
everyoneRow.find(".reply-granted, .create-granted").length,
2,
"everyone has full permissions by default"
@ -108,7 +112,7 @@ acceptance("Category Edit - security", function (needs) {
const staffRow = queryAll(".row-body").last();
assert.equal(
assert.strictEqual(
staffRow.find(".reply-granted, .create-granted").length,
2,
"staff group also has full permissions"
@ -116,13 +120,13 @@ acceptance("Category Edit - security", function (needs) {
await click(everyoneRow.find(".reply-toggle")[0]);
assert.equal(
assert.strictEqual(
everyoneRow.find(".reply-granted, .create-granted").length,
0,
"everyone does not have reply or create"
);
assert.equal(
assert.strictEqual(
staffRow.find(".reply-granted, .create-granted").length,
2,
"staff group still has full permissions"
@ -130,19 +134,19 @@ acceptance("Category Edit - security", function (needs) {
await click(staffRow.find(".reply-toggle")[0]);
assert.equal(
assert.strictEqual(
everyoneRow.find(".reply-granted, .create-granted").length,
0,
"everyone permission unchanged"
);
assert.equal(
assert.strictEqual(
staffRow.find(".reply-granted").length,
0,
"staff does not have reply permission"
);
assert.equal(
assert.strictEqual(
staffRow.find(".create-granted").length,
0,
"staff does not have create permission"
@ -150,13 +154,13 @@ acceptance("Category Edit - security", function (needs) {
await click(everyoneRow.find(".create-toggle")[0]);
assert.equal(
assert.strictEqual(
everyoneRow.find(".reply-granted, .create-granted").length,
2,
"everyone has full permissions"
);
assert.equal(
assert.strictEqual(
staffRow.find(".reply-granted, .create-granted").length,
2,
"staff group has full permissions (inherited from everyone)"

View File

@ -17,22 +17,22 @@ acceptance("Category Edit", function (needs) {
await visit("/c/bug");
await click("button.edit-category");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/bug/edit/general",
"it jumps to the correct screen"
);
assert.equal(
assert.strictEqual(
queryAll(".category-breadcrumb .badge-category").text(),
"bug"
);
assert.equal(
assert.strictEqual(
queryAll(".category-color-editor .badge-category").text(),
"bug"
);
await fillIn("input.category-name", "testing");
assert.equal(
assert.strictEqual(
queryAll(".category-color-editor .badge-category").text(),
"testing"
);
@ -43,7 +43,7 @@ acceptance("Category Edit", function (needs) {
await fillIn(".d-editor-input", "this is the new topic template");
await click("#save-category");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/bug/edit/general",
"it stays on the edit screen"
@ -55,7 +55,7 @@ acceptance("Category Edit", function (needs) {
await searchPriorityChooser.selectRowByValue(1);
await click("#save-category");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/bug/edit/settings",
"it stays on the edit screen"
@ -72,7 +72,7 @@ acceptance("Category Edit", function (needs) {
test("Index Route", async function (assert) {
await visit("/c/bug/edit");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/bug/edit/general",
"it redirects to the general tab"
@ -81,12 +81,12 @@ acceptance("Category Edit", function (needs) {
test("Slugless Route", async function (assert) {
await visit("/c/1-category/edit");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/1-category/edit/general",
"it goes to the general tab"
);
assert.equal(queryAll("input.category-name").val(), "bug");
assert.strictEqual(queryAll("input.category-name").val(), "bug");
});
test("Error Saving", async function (assert) {
@ -95,7 +95,10 @@ acceptance("Category Edit", function (needs) {
await click("#save-category");
assert.ok(visible(".bootbox"));
assert.equal(queryAll(".bootbox .modal-body").html(), "duplicate email");
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
"duplicate email"
);
await click(".bootbox .btn-primary");
assert.ok(!visible(".bootbox"));
@ -156,6 +159,6 @@ acceptance("Category Edit - no permission to edit", function (needs) {
test("returns 404", async function (assert) {
await visit("/c/bug/edit");
assert.equal(currentURL(), "/404");
assert.strictEqual(currentURL(), "/404");
});
});

View File

@ -19,17 +19,17 @@ acceptance("Category New", function (needs) {
assert.notOk(exists(".category-breadcrumb"));
await fillIn("input.category-name", "testing");
assert.equal(queryAll(".badge-category").text(), "testing");
assert.strictEqual(queryAll(".badge-category").text(), "testing");
await click("#save-category");
assert.equal(
assert.strictEqual(
currentURL(),
"/c/testing/edit/general",
"it transitions to the category edit route"
);
assert.equal(
assert.strictEqual(
queryAll(".edit-category-title h2").text(),
I18n.t("category.edit_dialog_title", {
categoryName: "testing",

View File

@ -20,8 +20,11 @@ acceptance("Click Track", function (needs) {
assert.ok(!exists(".user-card.show"), "card should not appear");
await click('article[data-post-id="3651"] a.mention');
assert.equal(count(".user-card.show"), 1, "card appear");
assert.equal(currentURL(), "/t/internationalization-localization/280");
assert.strictEqual(count(".user-card.show"), 1, "card appear");
assert.strictEqual(
currentURL(),
"/t/internationalization-localization/280"
);
assert.ok(!tracked);
});
});

View File

@ -41,15 +41,21 @@ acceptance("Composer Actions", function (needs) {
await click("article#post_3 button.reply");
await composerActions.expand();
assert.equal(composerActions.rowByIndex(0).value(), "reply_as_new_topic");
assert.equal(
assert.strictEqual(
composerActions.rowByIndex(0).value(),
"reply_as_new_topic"
);
assert.strictEqual(
composerActions.rowByIndex(1).value(),
"reply_as_private_message"
);
assert.equal(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.equal(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.equal(composerActions.rowByIndex(4).value(), "toggle_topic_bump");
assert.equal(composerActions.rowByIndex(5).value(), undefined);
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.strictEqual(
composerActions.rowByIndex(4).value(),
"toggle_topic_bump"
);
assert.strictEqual(composerActions.rowByIndex(5).value(), null);
});
test("replying to post - reply_as_private_message", async function (assert) {
@ -62,7 +68,7 @@ acceptance("Composer Actions", function (needs) {
await composerActions.selectRowByValue("reply_as_private_message");
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(privateMessageUsers.header().value(), "codinghorror");
assert.strictEqual(privateMessageUsers.header().value(), "codinghorror");
assert.ok(
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") >=
0
@ -82,15 +88,15 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("reply_to_topic");
assert.equal(
assert.strictEqual(
queryAll(".action-title .topic-link").text().trim(),
"Internationalization / localization"
);
assert.equal(
assert.strictEqual(
queryAll(".action-title .topic-link").attr("href"),
"/t/internationalization-localization/280"
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"test replying to topic when initially replied to post"
);
@ -110,7 +116,7 @@ acceptance("Composer Actions", function (needs) {
!exists(".composer-actions svg.d-icon-far-eye-slash"),
"whisper icon is not visible"
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-share"),
1,
"reply icon is visible"
@ -119,7 +125,7 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("toggle_whisper");
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-far-eye-slash"),
1,
"whisper icon is visible"
@ -152,8 +158,8 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("reply_as_new_topic");
assert.equal(categoryChooserReplyArea.header().name(), "faq");
assert.equal(
assert.strictEqual(categoryChooserReplyArea.header().name(), "faq");
assert.strictEqual(
queryAll(".action-title").text().trim(),
I18n.t("topic.create_long")
);
@ -190,11 +196,11 @@ acceptance("Composer Actions", function (needs) {
await composerActions.selectRowByValue("reply_as_private_message");
assert.ok(composerActions.el().hasClass("is-hidden"));
assert.equal(composerActions.el().children().length, 0);
assert.strictEqual(composerActions.el().children().length, 0);
await click("button#create-topic");
await composerActions.expand();
assert.equal(composerActions.rows().length, 2);
assert.strictEqual(composerActions.rows().length, 2);
});
test("interactions", async function (assert) {
@ -207,64 +213,76 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("reply_to_topic");
assert.equal(
assert.strictEqual(
queryAll(".action-title").text().trim(),
"Internationalization / localization"
);
assert.equal(queryAll(".d-editor-input").val(), quote);
assert.strictEqual(queryAll(".d-editor-input").val(), quote);
await composerActions.expand();
assert.equal(composerActions.rowByIndex(0).value(), "reply_as_new_topic");
assert.equal(composerActions.rowByIndex(1).value(), "reply_to_post");
assert.equal(
assert.strictEqual(
composerActions.rowByIndex(0).value(),
"reply_as_new_topic"
);
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_post");
assert.strictEqual(
composerActions.rowByIndex(2).value(),
"reply_as_private_message"
);
assert.equal(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.equal(composerActions.rowByIndex(4).value(), "toggle_topic_bump");
assert.equal(composerActions.rows().length, 5);
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.strictEqual(
composerActions.rowByIndex(4).value(),
"toggle_topic_bump"
);
assert.strictEqual(composerActions.rows().length, 5);
await composerActions.selectRowByValue("reply_to_post");
await composerActions.expand();
assert.ok(exists(".action-title img.avatar"));
assert.equal(
assert.strictEqual(
queryAll(".action-title .user-link").text().trim(),
"codinghorror"
);
assert.equal(queryAll(".d-editor-input").val(), quote);
assert.equal(composerActions.rowByIndex(0).value(), "reply_as_new_topic");
assert.equal(
assert.strictEqual(queryAll(".d-editor-input").val(), quote);
assert.strictEqual(
composerActions.rowByIndex(0).value(),
"reply_as_new_topic"
);
assert.strictEqual(
composerActions.rowByIndex(1).value(),
"reply_as_private_message"
);
assert.equal(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.equal(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.equal(composerActions.rowByIndex(4).value(), "toggle_topic_bump");
assert.equal(composerActions.rows().length, 5);
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.strictEqual(composerActions.rowByIndex(3).value(), "toggle_whisper");
assert.strictEqual(
composerActions.rowByIndex(4).value(),
"toggle_topic_bump"
);
assert.strictEqual(composerActions.rows().length, 5);
await composerActions.selectRowByValue("reply_as_new_topic");
await composerActions.expand();
assert.equal(
assert.strictEqual(
queryAll(".action-title").text().trim(),
I18n.t("topic.create_long")
);
assert.ok(queryAll(".d-editor-input").val().includes(quote));
assert.equal(composerActions.rowByIndex(0).value(), "reply_to_post");
assert.equal(
assert.strictEqual(composerActions.rowByIndex(0).value(), "reply_to_post");
assert.strictEqual(
composerActions.rowByIndex(1).value(),
"reply_as_private_message"
);
assert.equal(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.equal(composerActions.rowByIndex(3).value(), "shared_draft");
assert.equal(composerActions.rows().length, 4);
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.strictEqual(composerActions.rowByIndex(3).value(), "shared_draft");
assert.strictEqual(composerActions.rows().length, 4);
await composerActions.selectRowByValue("reply_as_private_message");
await composerActions.expand();
assert.equal(
assert.strictEqual(
queryAll(".action-title").text().trim(),
I18n.t("topic.private_message")
);
@ -272,10 +290,13 @@ acceptance("Composer Actions", function (needs) {
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") ===
0
);
assert.equal(composerActions.rowByIndex(0).value(), "reply_as_new_topic");
assert.equal(composerActions.rowByIndex(1).value(), "reply_to_post");
assert.equal(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.equal(composerActions.rows().length, 3);
assert.strictEqual(
composerActions.rowByIndex(0).value(),
"reply_as_new_topic"
);
assert.strictEqual(composerActions.rowByIndex(1).value(), "reply_to_post");
assert.strictEqual(composerActions.rowByIndex(2).value(), "reply_to_topic");
assert.strictEqual(composerActions.rows().length, 3);
});
test("replying to post - toggle_topic_bump", async function (assert) {
@ -288,7 +309,7 @@ acceptance("Composer Actions", function (needs) {
!exists(".composer-actions svg.d-icon-anchor"),
"no-bump icon is not visible"
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-share"),
1,
"reply icon is visible"
@ -297,7 +318,7 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("toggle_topic_bump");
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-anchor"),
1,
"no-bump icon is visible"
@ -314,7 +335,7 @@ acceptance("Composer Actions", function (needs) {
!exists(".composer-actions svg.d-icon-anchor"),
"no-bump icon is not visible"
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-share"),
1,
"reply icon is visible"
@ -335,7 +356,7 @@ acceptance("Composer Actions", function (needs) {
!exists(".composer-fields .whisper .d-icon-anchor"),
"no-bump icon is not visible"
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-share"),
1,
"reply icon is visible"
@ -346,12 +367,12 @@ acceptance("Composer Actions", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("toggle_whisper");
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-far-eye-slash"),
1,
"whisper icon is visible"
);
assert.equal(
assert.strictEqual(
count(".composer-fields .no-bump .d-icon-anchor"),
1,
"no-bump icon is visible"
@ -370,8 +391,11 @@ acceptance("Composer Actions", function (needs) {
await click("article#post_3 button.reply");
await composerActions.expand();
assert.equal(composerActions.rows().length, 5);
assert.equal(composerActions.rowByIndex(4).value(), "toggle_topic_bump");
assert.strictEqual(composerActions.rows().length, 5);
assert.strictEqual(
composerActions.rowByIndex(4).value(),
"toggle_topic_bump"
);
});
test("replying to post as TL3 user", async function (assert) {
@ -382,9 +406,9 @@ acceptance("Composer Actions", function (needs) {
await click("article#post_3 button.reply");
await composerActions.expand();
assert.equal(composerActions.rows().length, 3);
assert.strictEqual(composerActions.rows().length, 3);
Array.from(composerActions.rows()).forEach((row) => {
assert.notEqual(
assert.notStrictEqual(
row.value,
"toggle_topic_bump",
"toggle button is not visible"
@ -400,8 +424,11 @@ acceptance("Composer Actions", function (needs) {
await click("article#post_3 button.reply");
await composerActions.expand();
assert.equal(composerActions.rows().length, 4);
assert.equal(composerActions.rowByIndex(3).value(), "toggle_topic_bump");
assert.strictEqual(composerActions.rows().length, 4);
assert.strictEqual(
composerActions.rowByIndex(3).value(),
"toggle_topic_bump"
);
});
test("replying to first post - reply_as_private_message", async function (assert) {
@ -414,7 +441,7 @@ acceptance("Composer Actions", function (needs) {
await composerActions.selectRowByValue("reply_as_private_message");
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(privateMessageUsers.header().value(), "uwe_keim");
assert.strictEqual(privateMessageUsers.header().value(), "uwe_keim");
assert.ok(
queryAll(".d-editor-input").val().indexOf("Continuing the discussion") >=
0
@ -429,8 +456,8 @@ acceptance("Composer Actions", function (needs) {
await click("article#post_1 button.edit");
await composerActions.expand();
assert.equal(composerActions.rows().length, 1);
assert.equal(composerActions.rowByIndex(0).value(), "reply_to_post");
assert.strictEqual(composerActions.rows().length, 1);
assert.strictEqual(composerActions.rowByIndex(0).value(), "reply_to_post");
});
});
@ -477,24 +504,24 @@ acceptance("Composer Actions With New Topic Draft", function (needs) {
await composerActions.expand();
await composerActions.selectRowByValue("shared_draft");
assert.equal(tags.header().value(), "monkey", "tags are not reset");
assert.strictEqual(tags.header().value(), "monkey", "tags are not reset");
assert.equal(
assert.strictEqual(
queryAll("#reply-title").val(),
"This is the new text for the title using 'quotes'"
);
assert.equal(
assert.strictEqual(
queryAll("#reply-control .btn-primary.create .d-button-label").text(),
I18n.t("composer.create_shared_draft")
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-far-clipboard"),
1,
"shared draft icon is visible"
);
assert.equal(count("#reply-control.composing-shared-draft"), 1);
assert.strictEqual(count("#reply-control.composing-shared-draft"), 1);
await click(".modal-footer .btn.btn-default");
} finally {
toggleCheckDraftPopup(false);
@ -509,7 +536,7 @@ acceptance("Composer Actions With New Topic Draft", function (needs) {
await composerActions.expand();
stubDraftResponse();
await composerActions.selectRowByValue("reply_as_new_topic");
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").text(),
I18n.t("composer.composer_actions.reply_as_new_topic.confirm")
);

View File

@ -27,7 +27,7 @@ async function writeInComposer(assert) {
await fillIn(".d-editor-input", "[test](upload://abcdefg.png)");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
'<p><a href="/404" tabindex="-1">test</a></p>'
);
@ -41,7 +41,7 @@ acceptance("Composer Attachment - Cooking", function (needs) {
test("attachments are cooked properly", async function (assert) {
await writeInComposer(assert);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
'<p><a class="attachment" href="/uploads/short-url/asdsad.png" tabindex="-1">test</a></p>'
);
@ -55,7 +55,7 @@ acceptance("Composer Attachment - Secure Media Enabled", function (needs) {
test("attachments are cooked properly when secure media is enabled", async function (assert) {
await writeInComposer(assert);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
'<p><a class="attachment" href="/secure-media-uploads/default/3X/1/asjdiasjdiasida.png" tabindex="-1">test</a></p>'
);
@ -71,13 +71,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image = createImage("avatar.png", "/images/avatar.png?1", 200, 300);
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: avatar.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"![avatar|200x300](/images/avatar.png?1)\n"
);
@ -91,13 +91,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image = createImage("avatar.png", "/images/avatar.png?1", 200, 300);
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n[Uploading: avatar.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n![avatar|200x300](/images/avatar.png?1)\n"
);
@ -111,13 +111,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image = createImage("avatar.png", "/images/avatar.png?1", 200, 300);
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n[Uploading: avatar.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n![avatar|200x300](/images/avatar.png?1)\n"
);
@ -134,13 +134,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image = createImage("avatar.png", "/images/avatar.png?1", 200, 300);
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image \n[Uploading: avatar.png...]()\nText after the image."
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image \n![avatar|200x300](/images/avatar.png?1)\nText after the image."
);
@ -159,13 +159,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
textArea.selectionEnd = 23;
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image \n[Uploading: avatar.png...]()\n Text after the image."
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image \n![avatar|200x300](/images/avatar.png?1)\n Text after the image."
);
@ -181,43 +181,43 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image4 = createImage("image.png", "/images/avatar.png?4", 300, 400);
await queryAll(".wmd-controls").trigger("fileuploadsend", image1);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploadsend", image2);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n[Uploading: test.png(1)...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploadsend", image4);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n[Uploading: test.png(1)...]()\n[Uploading: image.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploadsend", image3);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n[Uploading: test.png(1)...]()\n[Uploading: image.png...]()\n[Uploading: image.png(1)...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image2);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n![test|100x200](/images/avatar.png?2)\n[Uploading: image.png...]()\n[Uploading: image.png(1)...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image3);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: test.png...]()\n![test|100x200](/images/avatar.png?2)\n[Uploading: image.png...]()\n![image|300x400](/images/avatar.png?3)\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image1);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"![test|200x300](/images/avatar.png?1)\n![test|100x200](/images/avatar.png?2)\n[Uploading: image.png...]()\n![image|300x400](/images/avatar.png?3)\n"
);
@ -230,13 +230,13 @@ acceptance("Composer Attachment - Upload Placeholder", function (needs) {
const image = createImage("ima++ge.png", "/images/avatar.png?4", 300, 400);
await queryAll(".wmd-controls").trigger("fileuploadsend", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Uploading: ima++ge.png...]()\n"
);
await queryAll(".wmd-controls").trigger("fileuploaddone", image);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"![ima++ge|300x400](/images/avatar.png?4)\n"
);
@ -279,7 +279,7 @@ acceptance("Composer Attachment - Upload Handler", function (needs) {
await fillIn(".d-editor-input", "This is a handler test.");
await queryAll(".wmd-controls").trigger("fileuploadsubmit", image);
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
"This is an upload handler test for handlertest.png",
"it should show the bootbox triggered by the upload handler"
@ -305,7 +305,7 @@ acceptance("Composer Attachment - File input", function (needs) {
await click("#create-topic");
assert.ok(exists("input#file-uploader"), "An input is rendered");
assert.equal(
assert.strictEqual(
query("input#file-uploader").accept,
".jpg,.jpeg,.png",
"Accepted values are correct"

View File

@ -34,7 +34,7 @@ acceptance("Composer - Draft saving", function (needs) {
);
await fillIn(".d-editor-input", "This won't be saved because of error");
assert.equal(
assert.strictEqual(
query("div#draft-status span").innerText.trim(),
I18n.t("composer.drafts_offline"),
"the draft wasn't saved, a warning is rendered"

View File

@ -22,7 +22,7 @@ acceptance("Composer - Edit conflict", function (needs) {
await click(".topic-post:nth-of-type(1) button.edit");
await fillIn(".d-editor-input", "this will 409");
await click("#reply-control button.create");
assert.equal(
assert.strictEqual(
queryAll("#reply-control button.create").text().trim(),
I18n.t("composer.overwrite_edit"),
"it shows the overwrite button"

View File

@ -27,7 +27,7 @@ acceptance("Composer - Hyperlink", function (needs) {
await fillIn(".modal-body .link-text", "Google");
await click(".modal-footer button.btn-primary");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"This is a link to [Google](https://google.com)",
"adds link with url and text, prepends 'https://'"
@ -45,7 +45,7 @@ acceptance("Composer - Hyperlink", function (needs) {
await fillIn(".modal-body .link-text", "Google");
await click(".modal-footer button.btn-danger");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"Reset textarea contents.",
"doesnt insert anything after cancelling"
@ -64,7 +64,7 @@ acceptance("Composer - Hyperlink", function (needs) {
await fillIn(".modal-body .link-url", "somelink.com");
await click(".modal-footer button.btn-primary");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"[Reset](https://somelink.com) textarea contents.",
"adds link to a selected text"

View File

@ -28,7 +28,7 @@ http://www.example.com/has-title.html
`
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
`
<p><aside class=\"onebox\"><article class=\"onebox-body\"><h3><a href=\"http://www.example.com/article.html\" tabindex=\"-1\">An interesting article</a></h3></article></aside><br>
@ -66,15 +66,15 @@ acceptance("Composer - Inline Onebox", function (needs) {
await click("#topic-footer-buttons .btn.create");
await fillIn(".d-editor-input", `Test www.example.com/page`);
assert.equal(requestsCount, 1);
assert.equal(
assert.strictEqual(requestsCount, 1);
assert.strictEqual(
queryAll(".d-editor-preview").html().trim(),
'<p>Test <a href="http://www.example.com/page" class="inline-onebox-loading" tabindex="-1">www.example.com/page</a></p>'
);
await fillIn(".d-editor-input", `Test www.example.com/page Test`);
assert.equal(requestsCount, 1);
assert.equal(
assert.strictEqual(requestsCount, 1);
assert.strictEqual(
queryAll(".d-editor-preview").html().trim(),
'<p>Test <a href="http://www.example.com/page" tabindex="-1">www.example.com/page</a> Test</p>'
);

View File

@ -32,7 +32,7 @@ acceptance("Composer - Tags", function (needs) {
await categoryChooser.selectRowByValue(2);
await click("#reply-control button.create");
assert.notEqual(currentURL(), "/");
assert.notStrictEqual(currentURL(), "/");
});
test("users do not bypass tag validation rule", async function (assert) {
@ -51,8 +51,8 @@ acceptance("Composer - Tags", function (needs) {
updateCurrentUser({ moderator: false, admin: false, trust_level: 1 });
await click("#reply-control button.create");
assert.equal(currentURL(), "/");
assert.equal(
assert.strictEqual(currentURL(), "/");
assert.strictEqual(
queryAll(".popup-tip.bad").text().trim(),
I18n.t("composer.error.tags_missing", { count: 1 }),
"it should display the right alert"
@ -63,7 +63,7 @@ acceptance("Composer - Tags", function (needs) {
await tags.selectRowByValue("monkey");
await click("#reply-control button.create");
assert.notEqual(currentURL(), "/");
assert.notStrictEqual(currentURL(), "/");
});
test("users do not bypass min required tags in tag group validation rule", async function (assert) {
@ -85,8 +85,8 @@ acceptance("Composer - Tags", function (needs) {
updateCurrentUser({ moderator: false, admin: false, trust_level: 1 });
await click("#reply-control button.create");
assert.equal(currentURL(), "/");
assert.equal(
assert.strictEqual(currentURL(), "/");
assert.strictEqual(
queryAll(".popup-tip.bad").text().trim(),
I18n.t("composer.error.tags_missing", { count: 1 }),
"it should display the right alert"
@ -97,6 +97,6 @@ acceptance("Composer - Tags", function (needs) {
await tags.selectRowByValue("monkey");
await click("#reply-control button.create");
assert.notEqual(currentURL(), "/");
assert.notStrictEqual(currentURL(), "/");
});
});

View File

@ -84,7 +84,7 @@ acceptance("Composer", function (needs) {
assert.ok(exists(".title-input .popup-tip.good"), "the title is now good");
await fillIn(".d-editor-input", "this is the *content* of a post");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview").html().trim(),
"<p>this is the <em>content</em> of a post</p>",
"it previews content"
@ -109,7 +109,7 @@ acceptance("Composer", function (needs) {
run(() => textarea.dispatchEvent(event));
const example = I18n.t(`composer.bold_text`);
assert.equal(
assert.strictEqual(
queryAll("#reply-control .d-editor-input").val().trim(),
`this is the *content* of a post**${example}**`,
"it supports keyboard shortcuts"
@ -143,7 +143,7 @@ acceptance("Composer", function (needs) {
"this is the *content* of a new topic post"
);
await click("#reply-control button.create");
assert.equal(
assert.strictEqual(
currentURL(),
"/t/internationalization-localization/280",
"it transitions to the newly created topic URL"
@ -157,7 +157,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", "enqueue this content please");
await click("#reply-control button.create");
assert.ok(visible(".d-modal"), "it pops up a modal");
assert.equal(currentURL(), "/", "it doesn't change routes");
assert.strictEqual(currentURL(), "/", "it doesn't change routes");
await click(".modal-footer button");
assert.ok(invisible(".d-modal"), "the modal can be dismissed");
@ -169,14 +169,14 @@ acceptance("Composer", function (needs) {
await fillIn("#reply-title", "This title doesn't matter");
await fillIn(".d-editor-input", "custom message");
await click("#reply-control button.create");
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").text(),
"This is a custom response"
);
assert.equal(currentURL(), "/", "it doesn't change routes");
assert.strictEqual(currentURL(), "/", "it doesn't change routes");
await click(".bootbox .btn-primary");
assert.equal(
assert.strictEqual(
currentURL(),
"/faq",
"can navigate to a `route_to` destination"
@ -200,7 +200,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", "this is the content of my reply");
await click("#reply-control button.create");
assert.equal(
assert.strictEqual(
queryAll(".cooked:last p").text(),
"If you use gettext format you could leverage Launchpad 13 translations and the community behind it."
);
@ -217,7 +217,7 @@ acceptance("Composer", function (needs) {
await click(".modal-footer button.keep-editing");
assert.ok(invisible(".discard-draft-modal.modal"));
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"this is the content of my reply",
"composer does not switch when using Keep Editing button"
@ -227,7 +227,7 @@ acceptance("Composer", function (needs) {
await click(".modal-footer button.save-draft");
assert.ok(invisible(".discard-draft-modal.modal"));
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
queryAll(".topic-post:nth-of-type(1) .cooked > p").text(),
"composer has contents of post to be edited"
@ -243,12 +243,15 @@ acceptance("Composer", function (needs) {
);
await visit("/t/1-3-0beta9-no-rate-limit-popups/28830");
assert.equal(currentURL(), "/t/1-3-0beta9-no-rate-limit-popups/28830");
assert.strictEqual(
currentURL(),
"/t/1-3-0beta9-no-rate-limit-popups/28830"
);
await click("#reply-control button.create");
assert.ok(visible(".reply-where-modal"), "it pops up a modal");
await click(".btn-reply-here");
assert.equal(
assert.strictEqual(
queryAll(".cooked:last p").text(),
"If you use gettext format you could leverage Launchpad 13 translations and the community behind it."
);
@ -260,7 +263,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", "this is the content of the first reply");
await visit("/t/this-is-a-test-topic/9");
assert.equal(currentURL(), "/t/this-is-a-test-topic/9");
assert.strictEqual(currentURL(), "/t/this-is-a-test-topic/9");
await click("#topic-footer-buttons .btn.create");
assert.ok(
exists(".discard-draft-modal.modal"),
@ -278,7 +281,7 @@ acceptance("Composer", function (needs) {
await click(".modal-footer button.discard-draft");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"",
"discards draft and reset composer textarea"
@ -322,7 +325,7 @@ acceptance("Composer", function (needs) {
await click(".topic-post:nth-of-type(1) button.show-more-actions");
await click(".topic-post:nth-of-type(1) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("Any plans to support"),
0,
"it populates the input with the post text"
@ -369,11 +372,11 @@ acceptance("Composer", function (needs) {
await promise;
// at this point, request is in flight, so post is staged
assert.equal(count(".topic-post.staged"), 1);
assert.strictEqual(count(".topic-post.staged"), 1);
assert.ok(
find(".topic-post:nth-of-type(1)")[0].className.includes("staged")
);
assert.equal(
assert.strictEqual(
find(".topic-post.staged .cooked").text().trim(),
"will return empty json"
);
@ -382,7 +385,7 @@ acceptance("Composer", function (needs) {
window.resolveLastPromise();
await visit("/t/internationalization-localization/280");
assert.equal(count(".topic-post.staged"), 0);
assert.strictEqual(count(".topic-post.staged"), 0);
});
QUnit.skip(
@ -397,7 +400,7 @@ acceptance("Composer", function (needs) {
await click("#reply-control button.create");
assert.ok(!exists(".topic-post.staged"));
assert.equal(
assert.strictEqual(
find(".topic-post .cooked")[0].innerText,
"Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?"
);
@ -410,13 +413,13 @@ acceptance("Composer", function (needs) {
await visit("/t/this-is-a-test-topic/9");
await click(".topic-post:nth-of-type(1) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the first post."),
0,
"it populates the input with the post text"
);
await click(".topic-post:nth-of-type(2) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the second post."),
0,
"it populates the input with the post text"
@ -435,7 +438,7 @@ acceptance("Composer", function (needs) {
);
await click(".modal-footer button.discard-draft");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the second post."),
0,
"it populates the input with the post text"
@ -446,15 +449,19 @@ acceptance("Composer", function (needs) {
await visit("/t/this-is-a-test-topic/9");
await click(".topic-post:nth-of-type(1) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the first post."),
0,
"it populates the input with the post text"
);
await click(".topic-post:nth-of-type(1) button.reply");
assert.equal(queryAll(".d-editor-input").val(), "", "it clears the input");
assert.strictEqual(
queryAll(".d-editor-input").val(),
"",
"it clears the input"
);
await click(".topic-post:nth-of-type(1) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the first post."),
0,
"it populates the input with the post text"
@ -470,7 +477,7 @@ acceptance("Composer", function (needs) {
await menu.expand();
await menu.selectRowByValue("toggleWhisper");
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-far-eye-slash"),
1,
"it sets the post type to whisper"
@ -501,7 +508,7 @@ acceptance("Composer", function (needs) {
await visit("/t/this-is-a-test-topic/9");
await click(".topic-post:nth-of-type(1) button.reply");
assert.equal(
assert.strictEqual(
count("#reply-control.open"),
1,
"it starts in open state by default"
@ -509,7 +516,7 @@ acceptance("Composer", function (needs) {
await click(".toggle-fullscreen");
assert.equal(
assert.strictEqual(
count("#reply-control.fullscreen"),
1,
"it expands composer to full screen"
@ -517,7 +524,7 @@ acceptance("Composer", function (needs) {
await click(".toggle-fullscreen");
assert.equal(
assert.strictEqual(
count("#reply-control.open"),
1,
"it collapses composer to regular size"
@ -526,7 +533,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", "This is a dirty reply");
await click(".toggler");
assert.equal(
assert.strictEqual(
count("#reply-control.draft"),
1,
"it collapses composer to draft bar"
@ -534,7 +541,7 @@ acceptance("Composer", function (needs) {
await click(".toggle-fullscreen");
assert.equal(
assert.strictEqual(
count("#reply-control.open"),
1,
"from draft, it expands composer back to open state"
@ -550,7 +557,7 @@ acceptance("Composer", function (needs) {
"toggleWhisper"
);
assert.equal(
assert.strictEqual(
count(".composer-actions svg.d-icon-far-eye-slash"),
1,
"it sets the post type to whisper"
@ -597,7 +604,7 @@ acceptance("Composer", function (needs) {
"it pops up a confirmation dialog"
);
await click(".modal-footer button.discard-draft");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the first post."),
0,
"it populates the input with the post text"
@ -615,18 +622,18 @@ acceptance("Composer", function (needs) {
exists(".discard-draft-modal.modal"),
"it pops up a confirmation dialog"
);
assert.equal(
assert.strictEqual(
queryAll(".modal-footer button.save-draft").text().trim(),
I18n.t("post.cancel_composer.save_draft"),
"has save draft button"
);
assert.equal(
assert.strictEqual(
queryAll(".modal-footer button.keep-editing").text().trim(),
I18n.t("post.cancel_composer.keep_editing"),
"has keep editing button"
);
await click(".modal-footer button.save-draft");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().indexOf("This is the second post."),
0,
"it populates the input with the post text"
@ -646,18 +653,18 @@ acceptance("Composer", function (needs) {
exists(".discard-draft-modal.modal"),
"it pops up a confirmation dialog"
);
assert.equal(
assert.strictEqual(
queryAll(".modal-footer button.save-draft").text().trim(),
I18n.t("post.cancel_composer.save_draft"),
"has save draft button"
);
assert.equal(
assert.strictEqual(
queryAll(".modal-footer button.keep-editing").text().trim(),
I18n.t("post.cancel_composer.keep_editing"),
"has keep editing button"
);
await click(".modal-footer button.save-draft");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"",
"it clears the composer input"
@ -673,7 +680,7 @@ acceptance("Composer", function (needs) {
await click(".topic-post:nth-of-type(1) button.show-more-actions");
await click(".topic-post:nth-of-type(1) button.edit");
assert.equal(
assert.strictEqual(
queryAll(".modal-body").text(),
I18n.t("drafts.abandon.confirm")
);
@ -752,7 +759,7 @@ acceptance("Composer", function (needs) {
await click(".modal .btn-default");
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(privateMessageUsers.header().value(), "codinghorror");
assert.strictEqual(privateMessageUsers.header().value(), "codinghorror");
} finally {
toggleCheckDraftPopup(false);
}
@ -771,14 +778,17 @@ acceptance("Composer", function (needs) {
);
await visit("/latest");
assert.equal(
assert.strictEqual(
queryAll("#create-topic").text().trim(),
I18n.t("topic.open_draft")
);
await click("#create-topic");
assert.equal(selectKit(".category-chooser").header().value(), "2");
assert.equal(selectKit(".mini-tag-chooser").header().value(), "fun,times");
assert.strictEqual(selectKit(".category-chooser").header().value(), "2");
assert.strictEqual(
selectKit(".mini-tag-chooser").header().value(),
"fun,times"
);
});
test("Deleting the text content of the first post in a private message", async function (assert) {
@ -790,7 +800,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", "");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-container textarea").attr("placeholder"),
I18n.t("composer.reply_placeholder"),
"it should not block because of missing category"
@ -798,7 +808,7 @@ acceptance("Composer", function (needs) {
});
const assertImageResized = (assert, uploads) => {
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
uploads.join("\n"),
"it resizes uploaded image"
@ -808,12 +818,12 @@ acceptance("Composer", function (needs) {
test("reply button has envelope icon when replying to private message", async function (assert) {
await visit("/t/34");
await click("article#post_3 button.reply");
assert.equal(
assert.strictEqual(
queryAll(".save-or-cancel button.create").text().trim(),
I18n.t("composer.create_pm"),
"reply button says Message"
);
assert.equal(
assert.strictEqual(
count(".save-or-cancel button.create svg.d-icon-envelope"),
1,
"reply button has envelope icon"
@ -825,12 +835,12 @@ acceptance("Composer", function (needs) {
await click("article#post_3 button.show-more-actions");
await click("article#post_3 button.edit");
assert.equal(
assert.strictEqual(
queryAll(".save-or-cancel button.create").text().trim(),
I18n.t("composer.save_edit"),
"save button says Save Edit"
);
assert.equal(
assert.strictEqual(
count(".save-or-cancel button.create svg.d-icon-pencil-alt"),
1,
"save button has pencil icon"
@ -871,7 +881,7 @@ acceptance("Composer", function (needs) {
await fillIn(".d-editor-input", uploads.join("\n"));
assert.equal(
assert.strictEqual(
count(".button-wrapper"),
10,
"it adds correct amount of scaling button groups"
@ -981,7 +991,7 @@ acceptance("Composer", function (needs) {
assert.ok(!exists(".composer-popup"));
await fillIn(".d-editor-input", "[](https://github.com)");
assert.equal(count(".composer-popup"), 1);
assert.strictEqual(count(".composer-popup"), 1);
});
test("Shows the 'group_mentioned' notice", async function (assert) {
@ -1042,16 +1052,19 @@ acceptance("Composer - Customizations", function (needs) {
test("Supports text customization", async function (assert) {
await visit("/");
await click("#create-topic");
assert.equal(query(".action-title").innerText, I18n.t("topic.create_long"));
assert.equal(
assert.strictEqual(
query(".action-title").innerText,
I18n.t("topic.create_long")
);
assert.strictEqual(
query(".save-or-cancel button").innerText,
I18n.t("composer.create_topic")
);
const tags = selectKit(".mini-tag-chooser");
await tags.expand();
await tags.selectRowByValue("monkey");
assert.equal(query(".action-title").innerText, "custom text");
assert.equal(
assert.strictEqual(query(".action-title").innerText, "custom text");
assert.strictEqual(
query(".save-or-cancel button").innerText,
I18n.t("composer.emoji")
);

View File

@ -26,7 +26,7 @@ acceptance("Composer topic featured links", function (needs) {
exists(".d-editor-textarea-wrapper .popup-tip.good"),
"the body is now good"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"An interesting article",
"title is from the oneboxed article"
@ -45,7 +45,7 @@ acceptance("Composer topic featured links", function (needs) {
exists(".d-editor-textarea-wrapper .popup-tip.good"),
"the body is now good"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"http://www.example.com/no-title.html",
"title is unchanged"
@ -56,7 +56,7 @@ acceptance("Composer topic featured links", function (needs) {
await visit("/");
await click("#create-topic");
await fillIn("#reply-title", "https://www.youtube.com/watch?v=dQw4w9WgXcQ");
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"Rick Astley - Never Gonna Give You Up (Video)",
"title is from the oneboxed article"
@ -75,7 +75,7 @@ acceptance("Composer topic featured links", function (needs) {
exists(".d-editor-textarea-wrapper .popup-tip.good"),
"link is pasted into body"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"http://www.example.com/nope-onebox.html",
"title is unchanged"
@ -87,17 +87,17 @@ acceptance("Composer topic featured links", function (needs) {
await click("#create-topic");
const title = "http://" + window.location.hostname + "/internal-page.html";
await fillIn("#reply-title", title);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview").html().trim().indexOf("onebox"),
-1,
"onebox preview doesn't show"
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().length,
0,
"link isn't put into the post"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
title,
"title is unchanged"
@ -119,7 +119,7 @@ acceptance("Composer topic featured links", function (needs) {
exists(".d-editor-textarea-wrapper .popup-tip.good"),
"the body is now good"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"An interesting article",
"title is from the oneboxed article"
@ -130,17 +130,17 @@ acceptance("Composer topic featured links", function (needs) {
await visit("/");
await click("#create-topic");
await fillIn("#reply-title", "http://www.example.com/has-title.html test");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview").html().trim().indexOf("onebox"),
-1,
"onebox preview doesn't show"
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().length,
0,
"link isn't put into the post"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"http://www.example.com/has-title.html test",
"title is unchanged"
@ -193,7 +193,7 @@ acceptance(
exists(".d-editor-textarea-wrapper .popup-tip.good"),
"the body is now good"
);
assert.equal(
assert.strictEqual(
queryAll(".title-input input").val(),
"An interesting article",
"title is from the oneboxed article"

View File

@ -71,7 +71,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
const done = assert.async();
appEvents.on("composer:all-uploads-complete", () => {
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n"
);
@ -79,7 +79,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
});
appEvents.on("composer:upload-started", () => {
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"The image:\n[Uploading: avatar.png...]()\n"
);
@ -98,7 +98,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
const image2 = createFile("avatar2.png");
const done = assert.async();
appEvents.on("composer:uploads-aborted", async () => {
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
I18n.t("post.errors.too_many_dragged_and_dropped_files", {
count: 2,
@ -122,7 +122,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
const done = assert.async();
appEvents.on("composer:uploads-aborted", async () => {
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
I18n.t("post.errors.upload_not_authorized", {
authorized_extensions: authorizedExtensions(
@ -153,7 +153,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
// const done = assert.async();
// appEvents.on("composer:uploads-cancelled", () => {
// assert.equal(
// assert.strictEqual(
// queryAll(".d-editor-input").val(),
// "The image:\n",
// "it should clear the cancelled placeholders"
@ -166,7 +166,7 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
// uploadStarted++;
// if (uploadStarted === 2) {
// assert.equal(
// assert.strictEqual(
// queryAll(".d-editor-input").val(),
// "The image:\n[Uploading: avatar.png...]()\n[Uploading: avatar2.png...]()\n",
// "it should show the upload placeholders when the upload starts"
@ -209,7 +209,7 @@ acceptance("Uppy Composer Attachment - Upload Error", function (needs) {
const done = assert.async();
appEvents.on("composer:upload-error", async () => {
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
"There was an error uploading the file, the gif was way too cool.",
"it should show the error message from the server"
@ -248,7 +248,7 @@ acceptance("Uppy Composer Attachment - Upload Handler", function (needs) {
const done = assert.async();
appEvents.on("composer:uploads-aborted", async () => {
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
"This is an upload handler test for handlertest.png",
"it should show the bootbox triggered by the upload handler"

View File

@ -38,7 +38,7 @@ acceptance("Create Account - User Fields", function (needs) {
assert.ok(exists(".user-field"), "it has at least one user field");
await click(".modal-footer .btn-primary");
assert.equal(
assert.strictEqual(
query("#account-email-validation").innerText.trim(),
"Please enter an email address"
);

View File

@ -52,7 +52,7 @@ acceptance("Invites - Create & Edit Invite Modal", function (needs) {
test("basic functionality", async function (assert) {
await visit("/u/eviltrout/invited/pending");
await click(".user-invite-buttons .btn:first-child");
assert.equal(
assert.strictEqual(
find("input.invite-link")[0].value,
"http://example.com/invites/52641ae8878790bc7b79916247cfe6ba",
"shows an invite link when modal is opened"
@ -75,7 +75,11 @@ acceptance("Invites - Create & Edit Invite Modal", function (needs) {
await click(".btn-primary");
assert.equal(count("tbody tr"), 1, "adds invite to list after saving");
assert.strictEqual(
count("tbody tr"),
1,
"adds invite to list after saving"
);
await click(".modal-close");
assert.notOk(deleted, "does not delete invite on close");
@ -97,7 +101,7 @@ acceptance("Invites - Create & Edit Invite Modal", function (needs) {
await fillIn("#invite-email", "error");
await click(".invite-link .btn");
assert.equal(
assert.strictEqual(
find("#modal-alert").text(),
"error isn't a valid email address."
);

View File

@ -18,7 +18,7 @@ acceptance("CustomHTML set", function () {
setCustomHTML("top", '<span class="custom-html-test">HTML</span>');
await visit("/static/faq");
assert.equal(
assert.strictEqual(
queryAll("span.custom-html-test").text(),
"HTML",
"it inserted the markup"
@ -31,7 +31,7 @@ acceptance("CustomHTML set", function () {
});
await visit("/static/faq");
assert.equal(
assert.strictEqual(
queryAll("span.cookie").text(),
"monster",
"it inserted the markup"

View File

@ -14,7 +14,7 @@ acceptance("CustomHTML template", function (needs) {
test("renders custom template", async function (assert) {
await visit("/static/faq");
assert.equal(
assert.strictEqual(
queryAll("span.top-span").text(),
"TOP",
"it inserted the template"

View File

@ -58,7 +58,7 @@ acceptance("Dashboard", function (needs) {
"new-contributors report"
);
assert.equal(
assert.strictEqual(
$(".section.dashboard-problems .problem-messages ul li:first-child")
.html()
.trim(),
@ -80,7 +80,7 @@ acceptance("Dashboard", function (needs) {
await visit("/admin");
await click(".dashboard .navigation-item.reports .navigation-link");
assert.equal(
assert.strictEqual(
queryAll(".dashboard .reports-index.section .reports-list .report")
.length,
1
@ -88,7 +88,7 @@ acceptance("Dashboard", function (needs) {
await fillIn(".dashboard .filter-reports-input", "flags");
assert.equal(
assert.strictEqual(
queryAll(".dashboard .reports-index.section .reports-list .report")
.length,
0
@ -97,7 +97,7 @@ acceptance("Dashboard", function (needs) {
await click(".dashboard .navigation-item.security .navigation-link");
await click(".dashboard .navigation-item.reports .navigation-link");
assert.equal(
assert.strictEqual(
queryAll(".dashboard .reports-index.section .reports-list .report")
.length,
1,
@ -106,7 +106,7 @@ acceptance("Dashboard", function (needs) {
await fillIn(".dashboard .filter-reports-input", "activities");
assert.equal(
assert.strictEqual(
queryAll(".dashboard .reports-index.section .reports-list .report")
.length,
1,
@ -121,9 +121,9 @@ acceptance("Dashboard", function (needs) {
const groupFilter = selectKit(".group-filter .combo-box");
assert.equal(
assert.strictEqual(
groupFilter.header().value(),
88,
"88",
"its set the value of the filter from the query params"
);
});

View File

@ -56,7 +56,10 @@ acceptance("Do not disturb", function (needs) {
await visit("/");
await click(".header-dropdown-toggle.current-user");
await click(".menu-links-row .user-preferences-link");
assert.equal(query(".do-not-disturb .relative-date").textContent, "1h");
assert.strictEqual(
query(".do-not-disturb .relative-date").textContent,
"1h"
);
await click(".do-not-disturb");

View File

@ -43,12 +43,12 @@ acceptance("Edit Notification Click", function (needs) {
await click(".d-header-icons #current-user");
await click("#quick-access-notifications .edited");
const [v1, v2] = queryAll(".history-modal .revision-content");
assert.equal(
assert.strictEqual(
v1.textContent.trim(),
"Hello world this is a test",
"history modal for the edited post is shown"
);
assert.equal(
assert.strictEqual(
v2.textContent.trim(),
"Hello world this is a testThis is an edit!",
"history modal for the edited post is shown"

View File

@ -34,7 +34,7 @@ acceptance("EmojiPicker", function (needs) {
await click("button.emoji.btn");
await click(".emoji-picker-emoji-area img.emoji[title='grinning']");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
":grinning:",
"it adds the emoji code in the editor when selected"
@ -49,7 +49,7 @@ acceptance("EmojiPicker", function (needs) {
await fillIn(".d-editor-input", "This is a test input");
await click("button.emoji.btn");
await click(".emoji-picker-emoji-area img.emoji[title='grinning']");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"This is a test input :grinning:",
"it adds the emoji code and a leading whitespace when there is text"
@ -59,7 +59,7 @@ acceptance("EmojiPicker", function (needs) {
await fillIn(".d-editor-input", "This is a test input ");
await click(".emoji-picker-emoji-area img.emoji[title='grinning']");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val(),
"This is a test input :grinning:",
"it adds the emoji code and no leading whitespace when user already entered whitespace"
@ -111,14 +111,14 @@ acceptance("EmojiPicker", function (needs) {
await click(".emoji-picker-emoji-area img.emoji[title='sunglasses']");
await click(".emoji-picker-emoji-area img.emoji[title='grinning']");
assert.equal(
assert.strictEqual(
queryAll('.section[data-section="recent"] .section-group img.emoji')
.length,
2,
"it has multiple recent emojis"
);
assert.equal(
assert.strictEqual(
/grinning/.test(
queryAll(".section.recent .section-group img.emoji").first().attr("src")
),

View File

@ -11,7 +11,7 @@ acceptance("Emoji", function (needs) {
await click("#topic-footer-buttons .btn.create");
await fillIn(".d-editor-input", "this is an emoji :blonde_woman:");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
`<p>this is an emoji <img src="/images/emoji/google_classic/blonde_woman.png?v=${v}" title=":blonde_woman:" class="emoji" alt=":blonde_woman:"></p>`
);
@ -22,7 +22,7 @@ acceptance("Emoji", function (needs) {
await click("#topic-footer-buttons .btn.create");
await fillIn(".d-editor-input", "this is an emoji :blonde_woman:t5:");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
`<p>this is an emoji <img src="/images/emoji/google_classic/blonde_woman/5.png?v=${v}" title=":blonde_woman:t5:" class="emoji" alt=":blonde_woman:t5:"></p>`
);

View File

@ -34,7 +34,7 @@ acceptance("Enforce Second Factor", function (needs) {
await catchAbortedTransition();
assert.equal(
assert.strictEqual(
queryAll(".control-label").text(),
"Password",
"it will not transition from second-factor preferences"
@ -43,7 +43,7 @@ acceptance("Enforce Second Factor", function (needs) {
await click("#toggle-hamburger-menu");
await click("a.admin-link");
assert.equal(
assert.strictEqual(
queryAll(".control-label").text(),
"Password",
"it stays at second-factor preferences"
@ -58,7 +58,7 @@ acceptance("Enforce Second Factor", function (needs) {
await catchAbortedTransition();
assert.equal(
assert.strictEqual(
queryAll(".control-label").text(),
"Password",
"it will not transition from second-factor preferences"
@ -67,7 +67,7 @@ acceptance("Enforce Second Factor", function (needs) {
await click("#toggle-hamburger-menu");
await click("a.about-link");
assert.equal(
assert.strictEqual(
queryAll(".control-label").text(),
"Password",
"it stays at second-factor preferences"
@ -83,7 +83,7 @@ acceptance("Enforce Second Factor", function (needs) {
await catchAbortedTransition();
assert.notEqual(
assert.notStrictEqual(
queryAll(".control-label").text(),
"Password",
"it will transition from second-factor preferences"
@ -92,7 +92,7 @@ acceptance("Enforce Second Factor", function (needs) {
await click("#toggle-hamburger-menu");
await click("a.about-link");
assert.notEqual(
assert.notStrictEqual(
queryAll(".control-label").text(),
"Password",
"it is possible to navigate to other pages"

View File

@ -22,7 +22,7 @@ acceptance("Fast Edit", function (needs) {
await click(".quote-button .quote-edit-label");
assert.ok(exists("#fast-edit-input"), "fast editor is open");
assert.equal(
assert.strictEqual(
queryAll("#fast-edit-input").val(),
"Any plans",
"contains selected text"
@ -43,7 +43,7 @@ acceptance("Fast Edit", function (needs) {
await triggerKeyEvent(document, "keypress", "e".charCodeAt(0));
assert.ok(exists("#fast-edit-input"), "fast editor is open");
assert.equal(
assert.strictEqual(
queryAll("#fast-edit-input").val(),
"Any plans",
"contains selected text"

View File

@ -141,14 +141,14 @@ acceptance("flagging", function (needs) {
await silenceUntilCombobox.selectRowByValue("tomorrow");
await fillIn(".silence-reason", "for breaking the rules");
await click(".d-modal-cancel");
assert.equal(count(".bootbox.modal:visible"), 1);
assert.strictEqual(count(".bootbox.modal:visible"), 1);
await click(".modal-footer .btn-default");
assert.ok(!exists(".bootbox.modal:visible"));
assert.ok(exists(".silence-user-modal"), "it shows the silence modal");
await click(".d-modal-cancel");
assert.equal(count(".bootbox.modal:visible"), 1);
assert.strictEqual(count(".bootbox.modal:visible"), 1);
await click(".modal-footer .btn-primary");
assert.ok(!exists(".bootbox.modal:visible"));

View File

@ -23,7 +23,7 @@ acceptance("Forgot password", function (needs) {
await click("header .login-button");
await click("#forgot-password-link");
assert.equal(
assert.strictEqual(
queryAll(".forgot-password-reset").attr("disabled"),
"disabled",
"it should disable the button until the field is filled"
@ -32,7 +32,7 @@ acceptance("Forgot password", function (needs) {
await fillIn("#username-or-email", "someuser");
await click(".forgot-password-reset");
assert.equal(
assert.strictEqual(
queryAll(".alert-error").html().trim(),
I18n.t("forgot_password.complete_username_not_found", {
username: "someuser",
@ -43,7 +43,7 @@ acceptance("Forgot password", function (needs) {
await fillIn("#username-or-email", "someuser@gmail.com");
await click(".forgot-password-reset");
assert.equal(
assert.strictEqual(
queryAll(".alert-error").html().trim(),
I18n.t("forgot_password.complete_email_not_found", {
email: "someuser@gmail.com",
@ -62,7 +62,7 @@ acceptance("Forgot password", function (needs) {
"it should remove the flash error when succeeding"
);
assert.equal(
assert.strictEqual(
queryAll(".modal-body").html().trim(),
I18n.t("forgot_password.complete_username_found", {
username: "someuser",
@ -76,7 +76,7 @@ acceptance("Forgot password", function (needs) {
await fillIn("#username-or-email", "someuser@gmail.com");
await click(".forgot-password-reset");
assert.equal(
assert.strictEqual(
queryAll(".modal-body").html().trim(),
I18n.t("forgot_password.complete_email_found", {
email: "someuser@gmail.com",
@ -100,7 +100,7 @@ acceptance(
await click("header .login-button");
await click("#forgot-password-link");
assert.equal(
assert.strictEqual(
queryAll(".forgot-password-reset").attr("disabled"),
"disabled",
"it should disable the button until the field is filled"
@ -109,7 +109,7 @@ acceptance(
await fillIn("#username-or-email", "someuser");
await click(".forgot-password-reset");
assert.equal(
assert.strictEqual(
queryAll(".modal-body").html().trim(),
I18n.t("forgot_password.complete_username", {
username: "someuser",

View File

@ -25,7 +25,7 @@ acceptance("Group Members - Anonymous", function () {
"it does not allow anon user to manage group members"
);
assert.equal(
assert.strictEqual(
queryAll(".group-username-filter").attr("placeholder"),
I18n.t("groups.members.filter_placeholder"),
"it should display the right filter placeholder"
@ -48,7 +48,7 @@ acceptance("Group Members", function (needs) {
await visit("/g/discourse");
await click(".group-members-add");
assert.equal(
assert.strictEqual(
count(".user-chooser"),
1,
"it should display the add members modal"
@ -63,7 +63,7 @@ acceptance("Group Members", function (needs) {
"it allows admin user to manage group members"
);
assert.equal(
assert.strictEqual(
queryAll(".group-username-filter").attr("placeholder"),
I18n.t("groups.members.filter_placeholder_admin"),
"it should display the right filter placeholder"

View File

@ -23,7 +23,7 @@ acceptance("Managing Group Category Notification Defaults", function (needs) {
test("As an admin", async function (assert) {
await visit("/g/discourse/manage/categories");
assert.equal(
assert.strictEqual(
count(".groups-notifications-form .category-selector"),
5,
"it should display category inputs"
@ -35,7 +35,7 @@ acceptance("Managing Group Category Notification Defaults", function (needs) {
await visit("/g/discourse/manage/categories");
assert.equal(
assert.strictEqual(
count(".groups-notifications-form .category-selector"),
5,
"it should display category inputs"

View File

@ -17,7 +17,7 @@ acceptance("Managing Group Email Settings - SMTP Disabled", function (needs) {
query(".user-secondary-navigation").innerText.includes("Email"),
"email link is not shown in the sidebar"
);
assert.equal(
assert.strictEqual(
currentRouteName(),
"group.manage.profile",
"it redirects to the group profile page"
@ -37,7 +37,7 @@ acceptance(
query(".user-secondary-navigation").innerText.includes("Email"),
"email link is shown in the sidebar"
);
assert.equal(
assert.strictEqual(
currentRouteName(),
"group.manage.email",
"it redirects to the group email page"
@ -84,12 +84,12 @@ acceptance(
assert.ok(exists(".group-smtp-email-settings"));
await click("#prefill_smtp_gmail");
assert.equal(
assert.strictEqual(
query("input[name='smtp_server']").value,
"smtp.gmail.com",
"prefills SMTP server settings for gmail"
);
assert.equal(
assert.strictEqual(
query("input[name='smtp_port']").value,
"587",
"prefills SMTP port settings for gmail"
@ -112,7 +112,7 @@ acceptance(
await click(".group-manage-save");
assert.equal(
assert.strictEqual(
query(".group-manage-save-button > span").innerText,
"Saved!"
);
@ -123,7 +123,7 @@ acceptance(
);
await click("#enable_smtp");
assert.equal(
assert.strictEqual(
query(".modal-body").innerText,
I18n.t("groups.manage.email.smtp_disable_confirm"),
"shows a confirm dialogue warning SMTP settings will be wiped"
@ -155,12 +155,12 @@ acceptance(
);
await click("#prefill_imap_gmail");
assert.equal(
assert.strictEqual(
query("input[name='imap_server']").value,
"imap.gmail.com",
"prefills IMAP server settings for gmail"
);
assert.equal(
assert.strictEqual(
query("input[name='imap_port']").value,
"993",
"prefills IMAP port settings for gmail"
@ -175,7 +175,7 @@ acceptance(
await click(".group-manage-save");
assert.equal(
assert.strictEqual(
query(".group-manage-save-button > span").innerText,
"Saved!"
);
@ -199,7 +199,7 @@ acceptance(
);
await click("#enable_imap");
assert.equal(
assert.strictEqual(
query(".modal-body").innerText,
I18n.t("groups.manage.email.imap_disable_confirm"),
"shows a confirm dialogue warning IMAP settings will be wiped"
@ -277,38 +277,38 @@ acceptance(
assert.notOk(exists("#enable_smtp:disabled"), "SMTP is not disabled");
assert.notOk(exists("#enable_imap:disabled"), "IMAP is not disabled");
assert.equal(
assert.strictEqual(
query("[name='username']").value,
"test@test.com",
"email username is prefilled"
);
assert.equal(
assert.strictEqual(
query("[name='password']").value,
"password",
"email password is prefilled"
);
assert.equal(
assert.strictEqual(
query("[name='smtp_server']").value,
"smtp.gmail.com",
"smtp server is prefilled"
);
assert.equal(
assert.strictEqual(
query("[name='smtp_port']").value,
"587",
"smtp port is prefilled"
);
assert.equal(
assert.strictEqual(
query("[name='imap_server']").value,
"imap.gmail.com",
"imap server is prefilled"
);
assert.equal(
assert.strictEqual(
query("[name='imap_port']").value,
"993",
"imap port is prefilled"
);
assert.equal(
assert.strictEqual(
selectKit("#imap_mailbox").header().value(),
"INBOX",
"imap mailbox is prefilled"
@ -359,7 +359,7 @@ acceptance(
await fillIn('input[name="password"]', "password@gmail.com");
await click(".test-smtp-settings");
assert.equal(
assert.strictEqual(
query(".modal-body").innerText,
"There was an issue with the SMTP credentials provided, check the username and password and try again.",
"shows a dialogue with the error message from the server"

View File

@ -20,31 +20,31 @@ acceptance("Managing Group Interaction Settings", function (needs) {
await visit("/g/alternative-group/manage/interaction");
assert.equal(
assert.strictEqual(
count(".groups-form-visibility-level"),
1,
"it should display visibility level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-mentionable-level"),
1,
"it should display mentionable level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-messageable-level"),
1,
"it should display messageable level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-incoming-email"),
1,
"it should display incoming email input"
);
assert.equal(
assert.strictEqual(
count(".groups-form-default-notification-level"),
1,
"it should display default notification level input"
@ -60,31 +60,31 @@ acceptance("Managing Group Interaction Settings", function (needs) {
await visit("/g/discourse/manage/interaction");
assert.equal(
assert.strictEqual(
count(".groups-form-visibility-level"),
0,
"it should not display visibility level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-mentionable-level"),
1,
"it should display mentionable level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-messageable-level"),
1,
"it should display messageable level selector"
);
assert.equal(
assert.strictEqual(
count(".groups-form-incoming-email"),
0,
"it should not display incoming email input"
);
assert.equal(
assert.strictEqual(
count(".groups-form-default-notification-level"),
1,
"it should display default notification level input"
@ -101,7 +101,7 @@ acceptance(
await visit("/g/alternative-group/manage/interaction");
await assert.ok(exists(".groups-form"), "should have the form");
await assert.equal(
await assert.strictEqual(
selectKit(".groups-form-default-notification-level").header().value(),
"0",
"it should select Muted as the notification level"
@ -112,7 +112,7 @@ acceptance(
await visit("/g/discourse/manage/interaction");
await assert.ok(exists(".groups-form"), "should have the form");
await assert.equal(
await assert.strictEqual(
selectKit(".groups-form-default-notification-level").header().value(),
"3",
"it should select Watching as the notification level"
@ -123,7 +123,7 @@ acceptance(
await visit("/g/support/manage/interaction");
await assert.ok(exists(".groups-form"), "should have the form");
await assert.equal(
await assert.strictEqual(
selectKit(".groups-form-default-notification-level").header().value(),
"2",
"it should select Tracking as the notification level"

View File

@ -99,14 +99,14 @@ acceptance("Group logs", function (needs) {
test("Browsing group logs", async function (assert) {
await visit("/g/snorlax/manage/logs");
assert.equal(
assert.strictEqual(
count("tr.group-manage-logs-row"),
2,
"it should display the right number of logs"
);
await click(query(".group-manage-logs-row button"));
assert.equal(
assert.strictEqual(
count("tr.group-manage-logs-row"),
1,
"it should display the right number of logs"

View File

@ -16,49 +16,49 @@ acceptance("Managing Group Membership", function (needs) {
await visit("/g/alternative-group/manage/membership");
assert.equal(
assert.strictEqual(
count('label[for="automatic_membership"]'),
1,
"it should display automatic membership label"
);
assert.equal(
assert.strictEqual(
count(".groups-form-primary-group"),
1,
"it should display set as primary group checkbox"
);
assert.equal(
assert.strictEqual(
count(".groups-form-grant-trust-level"),
1,
"it should display grant trust level selector"
);
assert.equal(
assert.strictEqual(
count(".group-form-public-admission"),
1,
"it should display group public admission input"
);
assert.equal(
assert.strictEqual(
count(".group-form-public-exit"),
1,
"it should display group public exit input"
);
assert.equal(
assert.strictEqual(
count(".group-form-allow-membership-requests"),
1,
"it should display group allow_membership_request input"
);
assert.equal(
assert.strictEqual(
count(".group-form-allow-membership-requests[disabled]"),
1,
"it should disable group allow_membership_request input"
);
assert.equal(
assert.strictEqual(
count(".group-flair-inputs"),
1,
"it should display avatar flair inputs"
@ -67,7 +67,7 @@ acceptance("Managing Group Membership", function (needs) {
await click(".group-form-public-admission");
await click(".group-form-allow-membership-requests");
assert.equal(
assert.strictEqual(
count(".group-form-public-admission[disabled]"),
1,
"it should disable group public admission input"
@ -78,7 +78,7 @@ acceptance("Managing Group Membership", function (needs) {
"it should not disable group public exit input"
);
assert.equal(
assert.strictEqual(
count(".group-form-membership-request-template"),
1,
"it should display the membership request template field"
@ -91,7 +91,7 @@ acceptance("Managing Group Membership", function (needs) {
await emailDomains.fillInFilter("foo.com");
await emailDomains.selectRowByValue("foo.com");
assert.equal(emailDomains.header().value(), "foo.com");
assert.strictEqual(emailDomains.header().value(), "foo.com");
});
test("As a group owner", async function (assert) {
@ -119,25 +119,25 @@ acceptance("Managing Group Membership", function (needs) {
"it should not display grant trust level selector"
);
assert.equal(
assert.strictEqual(
count(".group-form-public-admission"),
1,
"it should display group public admission input"
);
assert.equal(
assert.strictEqual(
count(".group-form-public-exit"),
1,
"it should display group public exit input"
);
assert.equal(
assert.strictEqual(
count(".group-form-allow-membership-requests"),
1,
"it should display group allow_membership_request input"
);
assert.equal(
assert.strictEqual(
count(".group-form-allow-membership-requests[disabled]"),
1,
"it should disable group allow_membership_request input"

View File

@ -24,17 +24,17 @@ acceptance("Managing Group Profile", function (needs) {
test("As an admin", async function (assert) {
await visit("/g/discourse/manage/profile");
assert.equal(
assert.strictEqual(
count(".group-form-bio"),
1,
"it should display group bio input"
);
assert.equal(
assert.strictEqual(
count(".group-form-name"),
1,
"it should display group name input"
);
assert.equal(
assert.strictEqual(
count(".group-form-full-name"),
1,
"it should display group full name input"

View File

@ -24,7 +24,7 @@ acceptance("Managing Group Tag Notification Defaults", function (needs) {
test("As an admin", async function (assert) {
await visit("/g/discourse/manage/tags");
assert.equal(
assert.strictEqual(
count(".groups-notifications-form .tag-chooser"),
5,
"it should display tag inputs"
@ -36,7 +36,7 @@ acceptance("Managing Group Tag Notification Defaults", function (needs) {
await visit("/g/discourse/manage/tags");
assert.equal(
assert.strictEqual(
count(".groups-notifications-form .tag-chooser"),
5,
"it should display tag inputs"

View File

@ -89,23 +89,23 @@ acceptance("Group Requests", function (needs) {
test("Group Requests", async function (assert) {
await visit("/g/Macdonald/requests");
assert.equal(count(".group-members tr"), 2);
assert.equal(
assert.strictEqual(count(".group-members tr"), 2);
assert.strictEqual(
queryAll(".group-members tr:first-child td:nth-child(1)")
.text()
.trim()
.replace(/\s+/g, " "),
"Robin Ward eviltrout"
);
assert.equal(
assert.strictEqual(
queryAll(".group-members tr:first-child td:nth-child(3)").text().trim(),
"Please accept my membership request."
);
assert.equal(
assert.strictEqual(
queryAll(".group-members tr:first-child .btn-primary").text().trim(),
"Accept"
);
assert.equal(
assert.strictEqual(
queryAll(".group-members tr:first-child .btn-danger").text().trim(),
"Deny"
);
@ -120,7 +120,7 @@ acceptance("Group Requests", function (needs) {
assert.deepEqual(requests, [["19", "true"]]);
await click(".group-members tr:last-child .btn-danger");
assert.equal(
assert.strictEqual(
queryAll(".group-members tr:last-child td:nth-child(4)").text().trim(),
"denied"
);

View File

@ -41,7 +41,7 @@ acceptance("Group - Anonymous", function (needs) {
await click(".activity-nav li a[href='/g/discourse/activity/topics']");
assert.ok(queryAll(".topic-list"), "it shows the topic list");
assert.equal(count(".topic-list-item"), 2, "it lists stream items");
assert.strictEqual(count(".topic-list-item"), 2, "it lists stream items");
await click(".activity-nav li a[href='/g/discourse/activity/mentions']");
@ -59,9 +59,9 @@ acceptance("Group - Anonymous", function (needs) {
const groupDropdown = selectKit(".group-dropdown");
await groupDropdown.expand();
assert.equal(groupDropdown.rowByIndex(1).name(), "discourse");
assert.strictEqual(groupDropdown.rowByIndex(1).name(), "discourse");
assert.equal(
assert.strictEqual(
groupDropdown.rowByIndex(0).name(),
I18n.t("groups.index.all")
);
@ -191,19 +191,19 @@ acceptance("Group - Authenticated", function (needs) {
await visit("/g");
await click(".group-index-request");
assert.equal(
assert.strictEqual(
queryAll(".modal-header .title").text().trim(),
I18n.t("groups.membership_request.title", { group_name: "Macdonald" })
);
assert.equal(
assert.strictEqual(
queryAll(".request-group-membership-form textarea").val(),
"Please add me"
);
await click(".modal-footer .btn-primary");
assert.equal(
assert.strictEqual(
queryAll(".fancy-title").text().trim(),
"Internationalization / localization"
);
@ -212,9 +212,9 @@ acceptance("Group - Authenticated", function (needs) {
await click(".group-message-button");
assert.equal(count("#reply-control"), 1, "it opens the composer");
assert.strictEqual(count("#reply-control"), 1, "it opens the composer");
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(
assert.strictEqual(
privateMessageUsers.header().value(),
"discourse",
"it prefills the group name"
@ -227,7 +227,7 @@ acceptance("Group - Authenticated", function (needs) {
await visit("/g/alternative-group");
await click(".nav-pills li a[title='Messages']");
assert.equal(
assert.strictEqual(
query("span.empty-state-title").innerText.trim(),
I18n.t("no_group_messages_title"),
"it should display the right text"
@ -238,7 +238,7 @@ acceptance("Group - Authenticated", function (needs) {
await visit("/g/discourse");
await click(".nav-pills li a[title='Messages']");
assert.equal(
assert.strictEqual(
queryAll(".topic-list-item .link-top-line").text().trim(),
"This is a private message 1",
"it should display the list of group topics"
@ -247,7 +247,7 @@ acceptance("Group - Authenticated", function (needs) {
await click("#search-button");
await fillIn("#search-term", "smth");
assert.equal(
assert.strictEqual(
query(
".search-menu .results .search-menu-assistant-item:first-child"
).innerText.trim(),
@ -259,18 +259,18 @@ acceptance("Group - Authenticated", function (needs) {
test("Admin Viewing Group", async function (assert) {
await visit("/g/discourse");
assert.equal(
assert.strictEqual(
count(".nav-pills li a[title='Manage']"),
1,
"it should show manage group tab if user is admin"
);
assert.equal(
assert.strictEqual(
count(".group-message-button"),
1,
"it displays show group message button"
);
assert.equal(
assert.strictEqual(
queryAll(".group-info-name").text(),
"Awesome Team",
"it should display the group name"
@ -278,7 +278,7 @@ acceptance("Group - Authenticated", function (needs) {
await click(".group-details-button button.btn-danger");
assert.equal(
assert.strictEqual(
queryAll(".bootbox .modal-body").html(),
I18n.t("admin.groups.delete_with_messages_confirm", {
count: 2,
@ -292,7 +292,7 @@ acceptance("Group - Authenticated", function (needs) {
test("Moderator Viewing Group", async function (assert) {
await visit("/g/alternative-group");
assert.equal(
assert.strictEqual(
count(".nav-pills li a[title='Manage']"),
1,
"it should show manage group tab if user can_admin_group"
@ -310,11 +310,11 @@ acceptance("Group - Authenticated", function (needs) {
const memberDropdown = selectKit(".group-member-dropdown:nth-of-type(1)");
await memberDropdown.expand();
assert.equal(
assert.strictEqual(
memberDropdown.rowByIndex(0).name(),
I18n.t("groups.members.remove_member")
);
assert.equal(
assert.strictEqual(
memberDropdown.rowByIndex(1).name(),
I18n.t("groups.members.make_owner")
);

View File

@ -12,17 +12,17 @@ acceptance("Groups", function () {
test("Browsing Groups", async function (assert) {
await visit("/g?username=eviltrout");
assert.equal(count(".group-box"), 1, "it displays user's groups");
assert.strictEqual(count(".group-box"), 1, "it displays user's groups");
await visit("/g");
assert.equal(count(".group-box"), 2, "it displays visible groups");
assert.equal(
assert.strictEqual(count(".group-box"), 2, "it displays visible groups");
assert.strictEqual(
count(".group-index-join"),
1,
"it shows button to join group"
);
assert.equal(
assert.strictEqual(
count(".group-index-request"),
1,
"it shows button to request for group membership"
@ -42,7 +42,7 @@ acceptance("Groups", function () {
await click("a[href='/g/discourse/members']");
assert.equal(
assert.strictEqual(
queryAll(".group-info-name").text().trim(),
"Awesome Team",
"it displays the group page"

View File

@ -25,7 +25,7 @@ acceptance("New Group - Authenticated", function (needs) {
await visit("/g");
await click(".groups-header-new");
assert.equal(
assert.strictEqual(
count(".group-form-save[disabled]"),
1,
"save button should be disabled"
@ -33,13 +33,13 @@ acceptance("New Group - Authenticated", function (needs) {
await fillIn("input[name='name']", "1");
assert.equal(
assert.strictEqual(
queryAll(".tip.bad").text().trim(),
I18n.t("admin.groups.new.name.too_short"),
"it should show the right validation tooltip"
);
assert.equal(
assert.strictEqual(
count(".group-form-save:disabled"),
1,
"it should disable the save button"
@ -50,7 +50,7 @@ acceptance("New Group - Authenticated", function (needs) {
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
);
assert.equal(
assert.strictEqual(
queryAll(".tip.bad").text().trim(),
I18n.t("admin.groups.new.name.too_long"),
"it should show the right validation tooltip"
@ -58,7 +58,7 @@ acceptance("New Group - Authenticated", function (needs) {
await fillIn("input[name='name']", "");
assert.equal(
assert.strictEqual(
queryAll(".tip.bad").text().trim(),
I18n.t("admin.groups.new.name.blank"),
"it should show the right validation tooltip"
@ -66,7 +66,7 @@ acceptance("New Group - Authenticated", function (needs) {
await fillIn("input[name='name']", "goodusername");
assert.equal(
assert.strictEqual(
queryAll(".tip.good").text().trim(),
I18n.t("admin.groups.new.name.available"),
"it should show the right validation tooltip"

View File

@ -19,7 +19,7 @@ acceptance(
await visit("/");
await click(".hamburger-dropdown");
assert.equal(
assert.strictEqual(
queryAll(".review .badge-notification.reviewables").text(),
"3"
);

View File

@ -32,7 +32,7 @@ category vs tag: #bug vs #bug::tag
uppercase hashtag works too #BUG, #BUG::tag`
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-preview:visible").html().trim(),
`<p>this is a category hashtag <a href="/c/bugs" class="hashtag" tabindex=\"-1\">#<span>bug</span></a></p>
<p>this is a tag hashtag <a href="/tag/monkey" class="hashtag" tabindex=\"-1\">#<span>monkey</span></a></p>

View File

@ -100,7 +100,7 @@ acceptance("Invite accept", function (needs) {
await visit("/invites/myvalidinvitetoken");
assert.ok(exists("#new-account-email"), "shows the email input");
assert.ok(exists("#new-account-username"), "shows the username input");
assert.equal(
assert.strictEqual(
queryAll("#new-account-username").val(),
"invited",
"username is prefilled"
@ -277,18 +277,18 @@ acceptance("Invite link with authentication data", function (needs) {
"email field is disabled"
);
assert.equal(
assert.strictEqual(
queryAll("#account-email-validation").text().trim(),
I18n.t("user.email.authenticated", { provider: "Facebook" })
);
assert.equal(
assert.strictEqual(
queryAll("#new-account-username").val(),
"foobar",
"username is prefilled"
);
assert.equal(
assert.strictEqual(
queryAll("#new-account-name").val(),
"barfoo",
"name is prefilled"
@ -312,7 +312,7 @@ acceptance("Email Invite link with authentication data", function (needs) {
await visit("/invites/myvalidinvitetoken");
assert.equal(
assert.strictEqual(
queryAll("#account-email-validation").text().trim(),
I18n.t("user.email.invite_auth_email_invalid", { provider: "Facebook" })
);
@ -350,18 +350,18 @@ acceptance(
);
assert.ok(!exists("#new-account-email"), "does not show email field");
assert.equal(
assert.strictEqual(
queryAll("#account-email-validation").text().trim(),
I18n.t("user.email.authenticated", { provider: "Facebook" })
);
assert.equal(
assert.strictEqual(
queryAll("#new-account-username").val(),
"foobar",
"username is prefilled"
);
assert.equal(
assert.strictEqual(
queryAll("#new-account-name").val(),
"barfoo",
"name is prefilled"
@ -388,7 +388,7 @@ acceptance(
await visit("/invites/myvalidinvitetoken");
assert.equal(
assert.strictEqual(
query(".bad").textContent.trim(),
"Your invitation email does not match the email authenticated by Facebook"
);
@ -416,7 +416,7 @@ acceptance(
assert.ok(!exists("#new-account-email"), "does not show email field");
assert.equal(
assert.strictEqual(
queryAll("#account-email-validation").text().trim(),
I18n.t("user.email.authenticated_by_invite")
);
@ -444,7 +444,7 @@ acceptance(
assert.ok(!exists("#new-account-email"), "does not show email field");
assert.equal(
assert.strictEqual(
queryAll("#account-email-validation").text().trim(),
I18n.t("user.email.ok")
);

View File

@ -30,7 +30,7 @@ acceptance("Jump to", function (needs) {
await fillIn("input.date-picker", "2014-02-24");
await click(".jump-to-post-modal .btn-primary");
assert.equal(
assert.strictEqual(
currentURL(),
"/t/internationalization-localization/280/3",
"it jumps to the correct post"
@ -44,7 +44,7 @@ acceptance("Jump to", function (needs) {
await fillIn("input.date-picker", "2094-02-24");
await click(".jump-to-post-modal .btn-primary");
assert.equal(
assert.strictEqual(
currentURL(),
"/t/internationalization-localization/280/20",
"it jumps to the last post if no post found"

View File

@ -34,18 +34,18 @@ acceptance("Keyboard Shortcuts - Anonymous Users", function (needs) {
await visit("/t/this-is-a-test-topic/9");
await triggerKeyEvent(document, "keypress", "g".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "s".charCodeAt(0));
assert.equal(currentURL(), "/t/this-is-a-test-topic/9");
assert.strictEqual(currentURL(), "/t/this-is-a-test-topic/9");
// Suggested topics elements exist.
await visit("/t/internationalization-localization/280");
await triggerKeyEvent(document, "keypress", "g".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "s".charCodeAt(0));
assert.equal(currentURL(), "/t/polls-are-still-very-buggy/27331/4");
assert.strictEqual(currentURL(), "/t/polls-are-still-very-buggy/27331/4");
await visit("/t/1-3-0beta9-no-rate-limit-popups/28830");
await triggerKeyEvent(document, "keypress", "g".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "s".charCodeAt(0));
assert.equal(currentURL(), "/t/keyboard-shortcuts-are-awesome/27331");
assert.strictEqual(currentURL(), "/t/keyboard-shortcuts-are-awesome/27331");
});
});
@ -99,12 +99,12 @@ acceptance("Keyboard Shortcuts - Authenticated Users", function (needs) {
exists("#dismiss-read-confirm"),
"confirmation modal to dismiss unread is present"
);
assert.equal(
assert.strictEqual(
query(".modal-body").innerText,
I18n.t("topics.bulk.also_dismiss_topics")
);
await click("#dismiss-read-confirm");
assert.equal(
assert.strictEqual(
markReadCalled,
1,
"mark read has been called on the backend once"
@ -129,13 +129,13 @@ acceptance("Keyboard Shortcuts - Authenticated Users", function (needs) {
exists("#dismiss-read-confirm"),
"confirmation modal to dismiss unread is present"
);
assert.equal(
assert.strictEqual(
query(".modal-body").innerText,
"Stop tracking these topics so they never show up as unread for me again"
);
await click("#dismiss-read-confirm");
assert.equal(
assert.strictEqual(
markReadCalled,
2,
"mark read has been called on the backend twice"
@ -154,7 +154,7 @@ acceptance("Keyboard Shortcuts - Authenticated Users", function (needs) {
assert.ok(exists("#dismiss-new-top"), "dismiss new top button is present");
await triggerKeyEvent(document, "keypress", "x".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "r".charCodeAt(0));
assert.equal(resetNewCalled, 1);
assert.strictEqual(resetNewCalled, 1);
// we get rid of all but one topic so the top dismiss button doesn't
// show up, as it only appears if there are too many topics pushing
@ -171,7 +171,7 @@ acceptance("Keyboard Shortcuts - Authenticated Users", function (needs) {
);
await triggerKeyEvent(document, "keypress", "x".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "r".charCodeAt(0));
assert.equal(resetNewCalled, 2);
assert.strictEqual(resetNewCalled, 2);
// restore the original topic list
topicList.topic_list.topics = originalTopics;
@ -195,6 +195,6 @@ acceptance("Keyboard Shortcuts - Authenticated Users", function (needs) {
await triggerKeyEvent(document, "keypress", "x".charCodeAt(0));
await triggerKeyEvent(document, "keypress", "r".charCodeAt(0));
assert.equal(resetNewCalled, 1);
assert.strictEqual(resetNewCalled, 1);
});
});

View File

@ -5,7 +5,7 @@ import { test } from "qunit";
acceptance("Login redirect - anonymous", function () {
test("redirects login to default homepage", async function (assert) {
await visit("/login");
assert.equal(
assert.strictEqual(
currentRouteName(),
"discovery.latest",
"it works when latest is the homepage"
@ -20,7 +20,7 @@ acceptance("Login redirect - categories default", function (needs) {
test("when site setting is categories", async function (assert) {
await visit("/login");
assert.equal(
assert.strictEqual(
currentRouteName(),
"discovery.categories",
"it works when categories is the homepage"

View File

@ -11,10 +11,14 @@ acceptance("Login Required", function (needs) {
test("redirect", async function (assert) {
await visit("/latest");
assert.equal(currentRouteName(), "login", "it redirects them to login");
assert.strictEqual(
currentRouteName(),
"login",
"it redirects them to login"
);
await click("#site-logo");
assert.equal(
assert.strictEqual(
currentRouteName(),
"login",
"clicking the logo keeps them on login"

View File

@ -21,7 +21,7 @@ acceptance("Login with email - hide email address taken", function (needs) {
await fillIn("#login-account-name", "someuser@example.com");
await click("#email-login-link");
assert.equal(
assert.strictEqual(
queryAll(".alert-success").html().trim(),
I18n.t("email_login.complete_email_found", {
email: "someuser@example.com",

View File

@ -37,7 +37,7 @@ acceptance("Login with email", function (needs) {
await fillIn("#login-account-name", "someuser");
await click("#email-login-link");
assert.equal(
assert.strictEqual(
queryAll(".alert-error").html(),
I18n.t("email_login.complete_username_not_found", {
username: "someuser",
@ -48,7 +48,7 @@ acceptance("Login with email", function (needs) {
await fillIn("#login-account-name", "someuser@gmail.com");
await click("#email-login-link");
assert.equal(
assert.strictEqual(
queryAll(".alert-error").html(),
I18n.t("email_login.complete_email_not_found", {
email: "someuser@gmail.com",
@ -62,7 +62,7 @@ acceptance("Login with email", function (needs) {
await click("#email-login-link");
assert.equal(
assert.strictEqual(
queryAll(".alert-success").html().trim(),
I18n.t("email_login.complete_username_found", { username: "someuser" }),
"it should display a success message for a valid username"
@ -73,7 +73,7 @@ acceptance("Login with email", function (needs) {
await fillIn("#login-account-name", "someuser@gmail.com");
await click("#email-login-link");
assert.equal(
assert.strictEqual(
queryAll(".alert-success").html().trim(),
I18n.t("email_login.complete_email_found", {
email: "someuser@gmail.com",

View File

@ -13,7 +13,7 @@ acceptance("Topic Discovery - Mobile", function (needs) {
assert.ok(exists(".topic-list"), "The list of topics was rendered");
assert.ok(exists(".topic-list .topic-list-item"), "has topics");
assert.equal(
assert.strictEqual(
queryAll("a[data-user-card=codinghorror] img.avatar").attr("loading"),
"lazy",
"it adds loading=`lazy` to topic list avatars"

View File

@ -108,7 +108,7 @@ acceptance("Mobile - menu swipes", function (needs) {
await triggerSwipeMove(swipe);
await triggerSwipeEnd(swipe);
assert.equal(
assert.strictEqual(
count(".panel-body"),
1,
"it should re-open hamburger on a right swipe"

View File

@ -36,20 +36,20 @@ acceptance("Modal", function (needs) {
assert.ok(!exists(".d-modal:visible"), "there is no modal at first");
await click(".login-button");
assert.equal(count(".d-modal:visible"), 1, "modal should appear");
assert.strictEqual(count(".d-modal:visible"), 1, "modal should appear");
let controller = controllerFor("modal");
assert.equal(controller.name, "login");
assert.strictEqual(controller.name, "login");
await click(".modal-outer-container");
assert.ok(
!exists(".d-modal:visible"),
"modal should disappear when you click outside"
);
assert.equal(controller.name, null);
assert.strictEqual(controller.name, null);
await click(".login-button");
assert.equal(count(".d-modal:visible"), 1, "modal should reappear");
assert.strictEqual(count(".d-modal:visible"), 1, "modal should reappear");
await triggerKeyEvent("#main-outlet", "keyup", 27);
assert.ok(!exists(".d-modal:visible"), "ESC should close the modal");
@ -60,16 +60,16 @@ acceptance("Modal", function (needs) {
run(() => showModal("not-dismissable", {}));
assert.equal(count(".d-modal:visible"), 1, "modal should appear");
assert.strictEqual(count(".d-modal:visible"), 1, "modal should appear");
await click(".modal-outer-container");
assert.equal(
assert.strictEqual(
count(".d-modal:visible"),
1,
"modal should not disappear when you click outside"
);
await triggerKeyEvent("#main-outlet", "keyup", 27);
assert.equal(
assert.strictEqual(
count(".d-modal:visible"),
1,
"ESC should not close the modal"
@ -86,7 +86,7 @@ acceptance("Modal", function (needs) {
await visit("/");
run(() => showModal("test-raw-title-panels", { panels }));
assert.equal(
assert.strictEqual(
queryAll(".d-modal .modal-tab:first-child").text().trim(),
"Test 1",
"it should display the raw title"
@ -102,7 +102,7 @@ acceptance("Modal", function (needs) {
await visit("/");
run(() => showModal("test-title", { title: "test_title" }));
assert.equal(
assert.strictEqual(
queryAll(".d-modal .title").text().trim(),
"Test title",
"it should display the title"
@ -111,7 +111,7 @@ acceptance("Modal", function (needs) {
await click(".d-modal .close");
run(() => showModal("test-title-with-body", { title: "test_title" }));
assert.equal(
assert.strictEqual(
queryAll(".d-modal .title").text().trim(),
"Test title",
"it should display the title when used with d-modal-body"
@ -136,12 +136,12 @@ acceptance("Modal Keyboard Events", function (needs) {
await click(".admin-topic-timer-update button");
await triggerKeyEvent(".d-modal", "keydown", 13);
assert.equal(
assert.strictEqual(
count("#modal-alert:visible"),
1,
"hitting Enter triggers modal action"
);
assert.equal(
assert.strictEqual(
count(".d-modal:visible"),
1,
"hitting Enter does not dismiss modal due to alert error"

View File

@ -26,19 +26,19 @@ acceptance("New Message - Authenticated", function (needs) {
);
assert.ok(exists(".composer-fields"), "it opens composer");
assert.equal(
assert.strictEqual(
queryAll("#reply-title").val().trim(),
"message title",
"it pre-fills message title"
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().trim(),
"message body",
"it pre-fills message body"
);
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(
assert.strictEqual(
privateMessageUsers.header().value(),
"charlie",
"it selects correct username"

View File

@ -23,19 +23,19 @@ acceptance("New Topic - Authenticated", function (needs) {
);
assert.ok(exists(".composer-fields"), "it opens composer");
assert.equal(
assert.strictEqual(
queryAll("#reply-title").val().trim(),
"topic title",
"it pre-fills topic title"
);
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().trim(),
"topic body",
"it pre-fills topic body"
);
assert.equal(
assert.strictEqual(
selectKit(".category-chooser").header().value(),
1,
"1",
"it selects desired category"
);
});

View File

@ -36,7 +36,7 @@ acceptance("User Notifications", function (needs) {
await visit("/"); // wait for re-render
assert.equal(count("#quick-access-notifications li"), 6);
assert.strictEqual(count("#quick-access-notifications li"), 6);
// high priority, unread notification - should be first
@ -80,8 +80,8 @@ acceptance("User Notifications", function (needs) {
await visit("/"); // wait for re-render
assert.equal(count("#quick-access-notifications li"), 6);
assert.equal(
assert.strictEqual(count("#quick-access-notifications li"), 6);
assert.strictEqual(
query("#quick-access-notifications li span[data-topic-id]").innerText,
"First notification"
);
@ -129,8 +129,8 @@ acceptance("User Notifications", function (needs) {
await visit("/"); // wait for re-render
assert.equal(count("#quick-access-notifications li"), 7);
assert.equal(
assert.strictEqual(count("#quick-access-notifications li"), 7);
assert.strictEqual(
queryAll("#quick-access-notifications li span[data-topic-id]")[1]
.innerText,
"Second notification"
@ -179,7 +179,7 @@ acceptance("User Notifications", function (needs) {
});
await visit("/"); // wait for re-render
assert.equal(count("#quick-access-notifications li"), 8);
assert.strictEqual(count("#quick-access-notifications li"), 8);
const texts = [];
queryAll("#quick-access-notifications li").each((_, el) =>
texts.push(el.innerText.trim())

View File

@ -14,7 +14,7 @@ acceptance("Opengraph Tag Updater", function (needs) {
await click("#toggle-hamburger-menu");
await click("a.about-link");
assert.equal(
assert.strictEqual(
document
.querySelector("meta[property='og:title']")
.getAttribute("content"),

View File

@ -22,7 +22,7 @@ acceptance("Personal Message", function (needs) {
test("suggested messages", async function (assert) {
await visit("/t/pm-for-testing/12");
assert.equal(
assert.strictEqual(
queryAll("#suggested-topics .suggested-topics-title").text().trim(),
I18n.t("suggested_topics.pm_title")
);

View File

@ -22,7 +22,7 @@ acceptance("Plugin Keyboard Shortcuts - Logged In", function (needs) {
await visit("/t/this-is-a-test-topic/9");
await triggerKeyEvent(document, "keypress", "]".charCodeAt(0));
assert.equal(
assert.strictEqual(
$("#added-element").length,
1,
"the keyboard shortcut callback fires successfully"

View File

@ -70,7 +70,7 @@ acceptance("Plugin Outlet - Connector Class", function (needs) {
test("Renders a template into the outlet", async function (assert) {
await visit("/u/eviltrout");
assert.equal(
assert.strictEqual(
count(".user-profile-primary-outlet.hello"),
1,
"it has class names"
@ -81,14 +81,14 @@ acceptance("Plugin Outlet - Connector Class", function (needs) {
);
await click(".say-hello");
assert.equal(
assert.strictEqual(
queryAll(".hello-result").text(),
"hello!",
"actions delegate properly"
);
await click(".say-hi");
assert.equal(
assert.strictEqual(
queryAll(".hi-result").text(),
"hi!",
"actions delegate properly"

View File

@ -52,8 +52,8 @@ acceptance("Plugin Outlet - Decorator", function (needs) {
)[0];
assert.ok(exists(fooConnector));
assert.equal(fooConnector.style.backgroundColor, "yellow");
assert.equal(barConnector.style.backgroundColor, "");
assert.strictEqual(fooConnector.style.backgroundColor, "yellow");
assert.strictEqual(barConnector.style.backgroundColor, "");
await visit("/c/bug");

View File

@ -27,22 +27,22 @@ acceptance("Plugin Outlet - Multi Template", function (needs) {
test("Renders a template into the outlet", async function (assert) {
await visit("/u/eviltrout");
assert.equal(
assert.strictEqual(
count(".user-profile-primary-outlet.hello"),
1,
"it has class names"
);
assert.equal(
assert.strictEqual(
count(".user-profile-primary-outlet.goodbye"),
1,
"it has class names"
);
assert.equal(
assert.strictEqual(
queryAll(".hello-span").text(),
"Hello",
"it renders into the outlet"
);
assert.equal(
assert.strictEqual(
queryAll(".bye-span").text(),
"Goodbye",
"it renders into the outlet"

View File

@ -23,12 +23,12 @@ acceptance("Plugin Outlet - Single Template", function (needs) {
test("Renders a template into the outlet", async function (assert) {
await visit("/u/eviltrout");
assert.equal(
assert.strictEqual(
count(".user-profile-primary-outlet.hello"),
1,
"it has class names"
);
assert.equal(
assert.strictEqual(
queryAll(".hello-username").text(),
"eviltrout",
"it renders into the outlet"

View File

@ -82,7 +82,7 @@ acceptance("User Preferences", function (needs) {
await visit("/u/eviltrout/preferences");
assert.ok($("body.user-preferences-page").length, "has the body class");
assert.equal(
assert.strictEqual(
currentURL(),
"/u/eviltrout/preferences/account",
"defaults to account tab"
@ -151,7 +151,7 @@ acceptance("User Preferences", function (needs) {
await fillIn("#change-email", "invalidemail");
assert.equal(
assert.strictEqual(
queryAll(".tip.bad").text().trim(),
I18n.t("user.email.invalid"),
"it should display invalid email tip"
@ -252,7 +252,7 @@ acceptance("User Preferences", function (needs) {
await click(".avatar-selector-refresh-gravatar");
assert.equal(
assert.strictEqual(
User.currentProp("gravatar_avatar_upload_id"),
6543,
"it should set the gravatar_avatar_upload_id property"
@ -327,7 +327,7 @@ acceptance("User Preferences when badges are disabled", function (needs) {
test("visit my preferences", async function (assert) {
await visit("/u/eviltrout/preferences");
assert.ok($("body.user-preferences-page").length, "has the body class");
assert.equal(
assert.strictEqual(
currentURL(),
"/u/eviltrout/preferences/account",
"defaults to account tab"
@ -418,7 +418,7 @@ acceptance("Custom User Fields", function (needs) {
);
await field.expand();
await field.selectRowByValue("Cat");
assert.equal(
assert.strictEqual(
field.header().value(),
"Cat",
"it sets the value of the field"
@ -444,7 +444,7 @@ acceptance(
await click(".save-changes");
await visit("/");
assert.ok(exists(".topic-list"), "The list of topics was rendered");
assert.equal(
assert.strictEqual(
currentRouteName(),
"discovery.bookmarks",
"it navigates to bookmarks"
@ -487,7 +487,7 @@ acceptance("Security", function (needs) {
test("recently connected devices", async function (assert) {
await visit("/u/eviltrout/preferences/security");
assert.equal(
assert.strictEqual(
queryAll(".auth-tokens > .auth-token:nth-of-type(1) .auth-token-device")
.text()
.trim(),
@ -495,12 +495,12 @@ acceptance("Security", function (needs) {
"it should display active token first"
);
assert.equal(
assert.strictEqual(
queryAll(".pref-auth-tokens > a:nth-of-type(1)").text().trim(),
I18n.t("user.auth_tokens.show_all", { count: 3 }),
"it should display two tokens"
);
assert.equal(
assert.strictEqual(
count(".pref-auth-tokens .auth-token"),
2,
"it should display two tokens"
@ -508,7 +508,7 @@ acceptance("Security", function (needs) {
await click(".pref-auth-tokens > a:nth-of-type(1)");
assert.equal(
assert.strictEqual(
count(".pref-auth-tokens .auth-token"),
3,
"it should display three tokens"
@ -518,11 +518,11 @@ acceptance("Security", function (needs) {
await authTokenDropdown.expand();
await authTokenDropdown.selectRowByValue("notYou");
assert.equal(count(".d-modal:visible"), 1, "modal should appear");
assert.strictEqual(count(".d-modal:visible"), 1, "modal should appear");
await click(".modal-footer .btn-primary");
assert.equal(
assert.strictEqual(
count(".pref-password.highlighted"),
1,
"it should highlight password preferences"
@ -543,7 +543,7 @@ acceptance(
await visit("/u/staged/preferences");
assert.ok($("body.user-preferences-page").length, "has the body class");
assert.equal(
assert.strictEqual(
currentURL(),
"/u/staged/preferences/account",
"defaults to account tab"

View File

@ -28,7 +28,7 @@ acceptance("Raw Plugin Outlet", function (needs) {
test("Renders the raw plugin outlet", async function (assert) {
await visit("/");
assert.ok(exists(".topic-lala"), "it renders the outlet");
assert.equal(
assert.strictEqual(
query(".topic-lala:nth-of-type(1)").innerText,
"11557",
"it has the topic id"

View File

@ -30,7 +30,11 @@ acceptance("Redirect to Top", function (needs) {
});
await visit("/categories");
assert.equal(currentURL(), "/top?period=weekly", "it works for categories");
assert.strictEqual(
currentURL(),
"/top?period=weekly",
"it works for categories"
);
});
test("redirects latest to monthly top", async function (assert) {
@ -43,7 +47,11 @@ acceptance("Redirect to Top", function (needs) {
});
await visit("/latest");
assert.equal(currentURL(), "/top?period=monthly", "it works for latest");
assert.strictEqual(
currentURL(),
"/top?period=monthly",
"it works for latest"
);
});
test("redirects root to All top", async function (assert) {
@ -56,6 +64,6 @@ acceptance("Redirect to Top", function (needs) {
});
await visit("/");
assert.equal(currentURL(), "/top?period=all", "it works for root");
assert.strictEqual(currentURL(), "/top?period=all", "it works for root");
});
});

View File

@ -8,13 +8,16 @@ acceptance("Reports", function (needs) {
test("Visit reports page", async function (assert) {
await visit("/admin/reports");
assert.equal($(".reports-list .report").length, 1);
assert.strictEqual($(".reports-list .report").length, 1);
const $report = $(".reports-list .report:first-child");
assert.equal($report.find(".report-title").html().trim(), "My report");
assert.strictEqual(
$report.find(".report-title").html().trim(),
"My report"
);
assert.equal(
assert.strictEqual(
$report.find(".report-description").html().trim(),
"List of my activities"
);

View File

@ -94,12 +94,12 @@ acceptance("Review", function (needs) {
"it has a link to the user"
);
assert.equal(
assert.strictEqual(
queryAll(".reviewable-flagged-post .post-body").html().trim(),
"<b>cooked content</b>"
);
assert.equal(count(".reviewable-flagged-post .reviewable-score"), 2);
assert.strictEqual(count(".reviewable-flagged-post .reviewable-score"), 2);
});
test("Flag related", async function (assert) {
@ -119,16 +119,16 @@ acceptance("Review", function (needs) {
await visit("/review");
assert.ok(exists(`${topic} .reviewable-action.approve`));
assert.ok(!exists(`${topic} .category-name`));
assert.equal(
assert.strictEqual(
queryAll(`${topic} .discourse-tag:nth-of-type(1)`).text(),
"hello"
);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .discourse-tag:nth-of-type(2)`).text(),
"world"
);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .post-body`).text().trim(),
"existing body"
);
@ -148,7 +148,7 @@ acceptance("Review", function (needs) {
await fillIn(".editable-field.payload-raw textarea", "new raw contents");
await click(`${topic} .reviewable-action.cancel-edit`);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .post-body`).text().trim(),
"existing body",
"cancelling does not update the value"
@ -167,24 +167,27 @@ acceptance("Review", function (needs) {
await fillIn(".editable-field.payload-raw textarea", "new raw contents");
await click(`${topic} .reviewable-action.save-edit`);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .discourse-tag:nth-of-type(1)`).text(),
"hello"
);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .discourse-tag:nth-of-type(2)`).text(),
"world"
);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .discourse-tag:nth-of-type(3)`).text(),
"monkey"
);
assert.equal(
assert.strictEqual(
queryAll(`${topic} .post-body`).text().trim(),
"new raw contents"
);
assert.equal(queryAll(`${topic} .category-name`).text().trim(), "support");
assert.strictEqual(
queryAll(`${topic} .category-name`).text().trim(),
"support"
);
});
test("Reviewables can become stale", async function (assert) {
@ -192,7 +195,10 @@ acceptance("Review", function (needs) {
const reviewable = query(`[data-reviewable-id="1234"]`);
assert.notOk(reviewable.className.includes("reviewable-stale"));
assert.equal(count(`[data-reviewable-id="1234"] .status .pending`), 1);
assert.strictEqual(
count(`[data-reviewable-id="1234"] .status .pending`),
1
);
assert.ok(!exists(".stale-help"));
publishToMessageBus("/reviewable_counts", {
@ -205,13 +211,13 @@ acceptance("Review", function (needs) {
await visit("/review"); // wait for re-render
assert.ok(reviewable.className.includes("reviewable-stale"));
assert.equal(count("[data-reviewable-id=1234] .status .approved"), 1);
assert.equal(count(".stale-help"), 1);
assert.strictEqual(count("[data-reviewable-id=1234] .status .approved"), 1);
assert.strictEqual(count(".stale-help"), 1);
assert.ok(query(".stale-help").innerText.includes("foo"));
await visit("/");
await visit("/review"); // reload review
assert.equal(count(".stale-help"), 0);
assert.strictEqual(count(".stale-help"), 0);
});
});

View File

@ -111,7 +111,7 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "discourse");
await click(".search-cta");
assert.equal(count(".fps-topic"), 1, "has one post");
assert.strictEqual(count(".fps-topic"), 1, "has one post");
});
test("search for personal messages", async function (assert) {
@ -120,15 +120,15 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "discourse in:personal");
await click(".search-cta");
assert.equal(count(".fps-topic"), 1, "has one post");
assert.strictEqual(count(".fps-topic"), 1, "has one post");
assert.equal(
assert.strictEqual(
count(".topic-status .personal_message"),
1,
"shows the right icon"
);
assert.equal(count(".search-highlight"), 1, "search highlights work");
assert.strictEqual(count(".search-highlight"), 1, "search highlights work");
});
test("escape search term", async function (assert) {
@ -174,7 +174,7 @@ acceptance("Search - Full Page", function (needs) {
exists('.search-advanced-options span:contains("admin")'),
'has "admin" pre-populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none @admin",
'has updated search term to "none user:admin"'
@ -199,7 +199,7 @@ acceptance("Search - Full Page", function (needs) {
exists('.search-advanced-options .badge-category:contains("faq")'),
'has "faq" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none #faq",
'has updated search term to "none #faq"'
@ -223,7 +223,7 @@ acceptance("Search - Full Page", function (needs) {
exists('.search-advanced-options .badge-category:contains("快乐的")'),
'has "快乐的" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none category:240",
'has updated search term to "none category:240"'
@ -239,7 +239,7 @@ acceptance("Search - Full Page", function (needs) {
exists(".search-advanced-options .in-title:checked"),
'has "in title" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none in:title",
'has updated search term to "none in:title"'
@ -262,7 +262,7 @@ acceptance("Search - Full Page", function (needs) {
exists(".search-advanced-options .in-likes:checked"),
'has "I liked" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none in:likes",
'has updated search term to "none in:likes"'
@ -279,7 +279,7 @@ acceptance("Search - Full Page", function (needs) {
'has "are in my messages" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none in:personal",
'has updated search term to "none in:personal"'
@ -303,7 +303,7 @@ acceptance("Search - Full Page", function (needs) {
"it should check the right checkbox"
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none in:seen",
"it should update the search term"
@ -326,12 +326,12 @@ acceptance("Search - Full Page", function (needs) {
await inSelector.expand();
await inSelector.selectRowByValue("bookmarks");
assert.equal(
assert.strictEqual(
inSelector.header().label(),
"I bookmarked",
'has "I bookmarked" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none in:bookmarks",
'has updated search term to "none in:bookmarks"'
@ -349,12 +349,12 @@ acceptance("Search - Full Page", function (needs) {
await statusSelector.expand();
await statusSelector.selectRowByValue("closed");
assert.equal(
assert.strictEqual(
statusSelector.header().label(),
"are closed",
'has "are closed" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none status:closed",
'has updated search term to "none status:closed"'
@ -370,7 +370,11 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "status:none");
assert.equal(statusSelector.header().label(), "any", 'has "any" populated');
assert.strictEqual(
statusSelector.header().label(),
"any",
'has "any" populated'
);
});
test("doesn't update in filter header if wrong value entered through searchbox", async function (assert) {
@ -380,13 +384,17 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "in:none");
assert.equal(inSelector.header().label(), "any", 'has "any" populated');
assert.strictEqual(
inSelector.header().label(),
"any",
'has "any" populated'
);
});
test("update post time through advanced search ui", async function (assert) {
await visit("/search?expanded=true&q=after:2018-08-22");
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"after:2018-08-22",
"it should update the search term correctly"
@ -403,13 +411,13 @@ acceptance("Search - Full Page", function (needs) {
await postTimeSelector.expand();
await postTimeSelector.selectRowByValue("after");
assert.equal(
assert.strictEqual(
postTimeSelector.header().label(),
"after",
'has "after" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none after:2016-10-05",
'has updated search term to "none after:2016-10-05"'
@ -421,14 +429,14 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "none");
await fillIn("#search-min-post-count", "5");
assert.equal(
assert.strictEqual(
queryAll(
".search-advanced-additional-options #search-min-post-count"
).val(),
"5",
'has "5" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none min_posts:5",
'has updated search term to "none min_posts:5"'
@ -440,14 +448,14 @@ acceptance("Search - Full Page", function (needs) {
await fillIn(".search-query", "none");
await fillIn("#search-max-post-count", "5");
assert.equal(
assert.strictEqual(
queryAll(
".search-advanced-additional-options #search-max-post-count"
).val(),
"5",
'has "5" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"none max_posts:5",
'has updated search term to "none max_posts:5"'
@ -463,7 +471,7 @@ acceptance("Search - Full Page", function (needs) {
'has "I liked" populated'
);
assert.equal(
assert.strictEqual(
queryAll(".search-query").val(),
"in:likes",
'has updated search term to "in:likes"'
@ -506,7 +514,7 @@ acceptance("Search - Full Page", function (needs) {
await click(".search-cta");
assert.equal(count(".fps-user-item"), 1, "has one user result");
assert.strictEqual(count(".fps-user-item"), 1, "has one user result");
await typeSelector.expand();
await typeSelector.selectRowByValue(SEARCH_TYPE_DEFAULT);
@ -531,7 +539,7 @@ acceptance("Search - Full Page", function (needs) {
await click(".search-cta");
assert.ok(!exists(".search-filters"), "has no filters");
assert.equal(count(".fps-tag-item"), 2, "has two tag results");
assert.strictEqual(count(".fps-tag-item"), 2, "has two tag results");
await typeSelector.expand();
await typeSelector.selectRowByValue(SEARCH_TYPE_DEFAULT);

View File

@ -33,7 +33,7 @@ acceptance("Search - Mobile", function (needs) {
await fillIn(".search-query", "discourse");
await click(".search-cta");
assert.equal(count(".fps-topic"), 1, "has one post");
assert.strictEqual(count(".fps-topic"), 1, "has one post");
assert.ok(
!visible(".search-advanced-filters"),
@ -42,7 +42,7 @@ acceptance("Search - Mobile", function (needs) {
await click("#search-button");
assert.equal(
assert.strictEqual(
queryAll("input.full-page-search").val(),
"discourse",
"it does not reset input when hitting search icon again"

View File

@ -63,7 +63,7 @@ acceptance("Search - Anonymous", function (needs) {
"quick tip no longer shown"
);
assert.equal(
assert.strictEqual(
query(
".search-menu .results ul.search-menu-initial-options li:first-child .search-item-slug"
).innerText.trim(),
@ -95,7 +95,7 @@ acceptance("Search - Anonymous", function (needs) {
await click(".show-advanced-search");
assert.equal(
assert.strictEqual(
query(".full-page-search").value,
"dev",
"it goes to full search page and preserves the search term"
@ -130,7 +130,7 @@ acceptance("Search - Anonymous", function (needs) {
await visit("/tag/important");
await click("#search-button");
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
`${I18n.t("search.in")} test`,
"contenxtual tag search is first available option with no term"
@ -138,7 +138,7 @@ acceptance("Search - Anonymous", function (needs) {
await fillIn("#search-term", "smth");
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
`smth ${I18n.t("search.in")} test`,
"tag-scoped search is first available option"
@ -147,7 +147,7 @@ acceptance("Search - Anonymous", function (needs) {
await visit("/c/bug");
await click("#search-button");
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
`smth ${I18n.t("search.in")} bug`,
"category-scoped search is first available option"
@ -161,7 +161,7 @@ acceptance("Search - Anonymous", function (needs) {
await visit("/t/internationalization-localization/280");
await click("#search-button");
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
`smth ${I18n.t("search.in_this_topic")}`,
"topic-scoped search is first available option"
@ -170,7 +170,7 @@ acceptance("Search - Anonymous", function (needs) {
await visit("/u/eviltrout");
await click("#search-button");
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
`smth ${I18n.t("search.in_posts_by", {
username: "eviltrout",
@ -187,7 +187,7 @@ acceptance("Search - Anonymous", function (needs) {
const firstResult =
".search-menu .results .search-menu-assistant-item:first-child";
assert.equal(
assert.strictEqual(
query(firstResult).textContent.trim(),
I18n.t("search.in_this_topic"),
"contenxtual topic search is first available option"
@ -203,7 +203,7 @@ acceptance("Search - Anonymous", function (needs) {
"clicking first option formats results as posts"
);
assert.equal(
assert.strictEqual(
query("#post_7 span.highlighted").textContent.trim(),
"a proper",
"highlights the post correctly"
@ -214,7 +214,7 @@ acceptance("Search - Anonymous", function (needs) {
"search context indicator is visible"
);
await click(".clear-search");
assert.equal(query("#search-term").value, "", "clear button works");
assert.strictEqual(query("#search-term").value, "", "clear button works");
await click(".search-context");
@ -249,9 +249,9 @@ acceptance("Search - Anonymous", function (needs) {
await click("#search-button");
await fillIn("#search-term", "@admin");
assert.equal(count(".search-menu-assistant-item"), 2);
assert.strictEqual(count(".search-menu-assistant-item"), 2);
assert.equal(
assert.strictEqual(
query(
".search-menu-assistant-item:first-child .search-item-user .label-suffix"
).textContent.trim(),
@ -259,7 +259,7 @@ acceptance("Search - Anonymous", function (needs) {
"first result hints in this topic search"
);
assert.equal(
assert.strictEqual(
query(
".search-menu-assistant-item:nth-child(2) .search-item-user .label-suffix"
).textContent.trim(),
@ -358,13 +358,13 @@ acceptance("Search - Authenticated", function (needs) {
await triggerKeyEvent(".search-menu", "keydown", 40);
await click(document.activeElement);
assert.notEqual(count(".search-menu .results .item"), 0);
assert.notStrictEqual(count(".search-menu .results .item"), 0);
await fillIn("#search-term", "plans empty");
await triggerKeyEvent("#search-term", "keydown", 13);
assert.equal(count(".search-menu .results .item"), 0);
assert.equal(count(".search-menu .results .no-results"), 1);
assert.strictEqual(count(".search-menu .results .item"), 0);
assert.strictEqual(count(".search-menu .results .no-results"), 1);
});
test("search dropdown keyboard navigation", async function (assert) {
@ -389,7 +389,7 @@ acceptance("Search - Authenticated", function (needs) {
await triggerKeyEvent("#search-term", "keydown", keyArrowDown);
assert.equal(
assert.strictEqual(
document.activeElement.getAttribute("href"),
query(`${container} li:first-child a`).getAttribute("href"),
"arrow down selects first element"
@ -397,7 +397,7 @@ acceptance("Search - Authenticated", function (needs) {
await triggerKeyEvent("#search-term", "keydown", keyArrowDown);
assert.equal(
assert.strictEqual(
document.activeElement.getAttribute("href"),
query(`${container} li:nth-child(2) a`).getAttribute("href"),
"arrow down selects next element"
@ -408,7 +408,7 @@ acceptance("Search - Authenticated", function (needs) {
await triggerKeyEvent("#search-term", "keydown", keyArrowDown);
await triggerKeyEvent("#search-term", "keydown", keyArrowDown);
assert.equal(
assert.strictEqual(
document.activeElement.getAttribute("href"),
"/search?q=dev",
"arrow down sets focus to more results link"
@ -421,7 +421,7 @@ acceptance("Search - Authenticated", function (needs) {
await triggerKeyEvent(".search-menu", "keydown", keyArrowDown);
await triggerKeyEvent(".search-menu", "keydown", keyArrowUp);
assert.equal(
assert.strictEqual(
document.activeElement.tagName.toLowerCase(),
"input",
"arrow up sets focus to search term input"
@ -437,7 +437,7 @@ acceptance("Search - Authenticated", function (needs) {
);
await triggerKeyEvent(".search-menu", "keydown", keyA);
assert.equal(
assert.strictEqual(
query("#reply-control textarea").value,
`${window.location.origin}${firstLink}`,
"hitting A when focused on a search result copies link to composer"
@ -455,7 +455,7 @@ acceptance("Search - with tagging enabled", function (needs) {
await fillIn("#search-term", "dev");
await triggerKeyEvent("#search-term", "keydown", 13);
assert.equal(
assert.strictEqual(
query(
".search-menu .results ul li:nth-of-type(1) .discourse-tags"
).textContent.trim(),
@ -477,7 +477,7 @@ acceptance("Search - with tagging enabled", function (needs) {
assert.ok(exists(query(firstItem)));
const firstTag = query(`${firstItem} .search-item-tag`).textContent.trim();
assert.equal(firstTag, "monkey");
assert.strictEqual(firstTag, "monkey");
});
});
@ -528,13 +528,13 @@ acceptance("Search - assistant", function (needs) {
).textContent.trim();
await click(firstCategory);
assert.equal(query("#search-term").value, `#${firstResultSlug}`);
assert.strictEqual(query("#search-term").value, `#${firstResultSlug}`);
await fillIn("#search-term", "sam #");
await triggerKeyEvent("#search-term", "keyup", 51);
assert.ok(exists(query(firstCategory)));
assert.equal(
assert.strictEqual(
query(
".search-menu .results ul.search-menu-assistant .search-item-prefix"
).innerText,
@ -542,7 +542,7 @@ acceptance("Search - assistant", function (needs) {
);
await click(firstCategory);
assert.equal(query("#search-term").value, `sam #${firstResultSlug}`);
assert.strictEqual(query("#search-term").value, `sam #${firstResultSlug}`);
});
test("shows in: shortcuts", async function (assert) {
@ -554,15 +554,15 @@ acceptance("Search - assistant", function (needs) {
await fillIn("#search-term", "in:");
await triggerKeyEvent("#search-term", "keyup", 51);
assert.equal(query(firstTarget).innerText, "in:title");
assert.strictEqual(query(firstTarget).innerText, "in:title");
await fillIn("#search-term", "sam in:");
await triggerKeyEvent("#search-term", "keyup", 51);
assert.equal(query(firstTarget).innerText, "sam in:title");
assert.strictEqual(query(firstTarget).innerText, "sam in:title");
await fillIn("#search-term", "in:pers");
await triggerKeyEvent("#search-term", "keyup", 51);
assert.equal(query(firstTarget).innerText, "in:personal");
assert.strictEqual(query(firstTarget).innerText, "in:personal");
});
test("shows users when typing @", async function (assert) {
@ -576,9 +576,9 @@ acceptance("Search - assistant", function (needs) {
const firstUser =
".search-menu .results ul.search-menu-assistant .search-item-user";
const firstUsername = query(firstUser).innerText.trim();
assert.equal(firstUsername, "TeaMoe");
assert.strictEqual(firstUsername, "TeaMoe");
await click(query(firstUser));
assert.equal(query("#search-term").value, `@${firstUsername}`);
assert.strictEqual(query("#search-term").value, `@${firstUsername}`);
});
});

View File

@ -10,9 +10,9 @@ import { test } from "qunit";
acceptance("Shared Drafts", function () {
test("Viewing and publishing", async function (assert) {
await visit("/t/some-topic/9");
assert.equal(count(".shared-draft-controls"), 1);
assert.strictEqual(count(".shared-draft-controls"), 1);
let categoryChooser = selectKit(".shared-draft-controls .category-chooser");
assert.equal(categoryChooser.header().value(), "3");
assert.strictEqual(categoryChooser.header().value(), "3");
await click(".publish-shared-draft");
await click(".bootbox .btn-primary");
@ -22,7 +22,7 @@ acceptance("Shared Drafts", function () {
test("Updating category", async function (assert) {
await visit("/t/some-topic/9");
assert.equal(count(".shared-draft-controls"), 1);
assert.strictEqual(count(".shared-draft-controls"), 1);
await click(".edit-topic");
@ -33,6 +33,6 @@ acceptance("Shared Drafts", function () {
await click(".edit-controls .btn-primary");
categoryChooser = selectKit(".shared-draft-controls .category-chooser");
assert.equal(categoryChooser.header().value(), "7");
assert.strictEqual(categoryChooser.header().value(), "7");
});
});

View File

@ -40,14 +40,14 @@ acceptance("Signing In", function () {
await fillIn("#login-account-name", "eviltrout");
await fillIn("#login-account-password", "not-activated");
await click(".modal-footer .btn-primary");
assert.equal(
assert.strictEqual(
queryAll(".modal-body b").text(),
"<small>eviltrout@example.com</small>"
);
assert.ok(!exists(".modal-body small"), "it escapes the email address");
await click(".modal-footer button.resend");
assert.equal(
assert.strictEqual(
queryAll(".modal-body b").text(),
"<small>current@example.com</small>"
);
@ -63,8 +63,11 @@ acceptance("Signing In", function () {
await fillIn("#login-account-password", "not-activated-edit");
await click(".modal-footer .btn-primary");
await click(".modal-footer button.edit-email");
assert.equal(queryAll(".activate-new-email").val(), "current@example.com");
assert.equal(
assert.strictEqual(
queryAll(".activate-new-email").val(),
"current@example.com"
);
assert.strictEqual(
count(".modal-footer .btn-primary:disabled"),
1,
"must change email"
@ -72,7 +75,10 @@ acceptance("Signing In", function () {
await fillIn(".activate-new-email", "different@example.com");
assert.ok(!exists(".modal-footer .btn-primary:disabled"));
await click(".modal-footer .btn-primary");
assert.equal(queryAll(".modal-body b").text(), "different@example.com");
assert.strictEqual(
queryAll(".modal-body b").text(),
"different@example.com"
);
});
skip("second factor", async function (assert) {

View File

@ -21,7 +21,7 @@ acceptance("Static", function () {
assert.ok(exists(".body-page"), "The content is present");
await visit("/login");
assert.equal(
assert.strictEqual(
currentRouteName(),
"discovery.latest",
"it redirects them to latest unless `login_required`"

View File

@ -35,7 +35,7 @@ acceptance("Tags intersection", function (needs) {
await click("#create-topic");
assert.ok(exists(".mini-tag-chooser"), "The tag selector appears");
assert.equal(
assert.strictEqual(
$(".composer-fields .mini-tag-chooser").text().trim(),
"first, second",
"populates the tags when clicking 'New topic'"

View File

@ -191,7 +191,7 @@ acceptance("Tags listed by group", function (needs) {
test("list the tags in groups", async function (assert) {
await visit("/tags");
assert.equal(
assert.strictEqual(
$(".tag-list").length,
4,
"shows separate lists for the 3 groups and the ungrouped tags"
@ -223,7 +223,7 @@ acceptance("Tags listed by group", function (needs) {
["/tag/focus", "/tag/escort"],
"always uses lowercase URLs for mixed case tags"
);
assert.equal(
assert.strictEqual(
$("a[data-tag-name='private']").attr("href"),
"/u/eviltrout/messages/tags/private",
"links to private messages"
@ -237,7 +237,7 @@ acceptance("Tags listed by group", function (needs) {
assert.ok(!exists("#create-topic:disabled"));
await visit("/tag/staff-only-tag");
assert.equal(count("#create-topic:disabled"), 1);
assert.strictEqual(count("#create-topic:disabled"), 1);
updateCurrentUser({ moderator: true });
@ -384,7 +384,7 @@ acceptance("Tag info", function (needs) {
updateCurrentUser({ moderator: false, admin: false });
await visit("/tag/planters");
assert.equal(count("#show-tag-info"), 1);
assert.strictEqual(count("#show-tag-info"), 1);
await click("#show-tag-info");
assert.ok(exists(".tag-info .tag-name"), "show tag");
@ -392,12 +392,16 @@ acceptance("Tag info", function (needs) {
queryAll(".tag-info .tag-associations").text().indexOf("Gardening") >= 0,
"show tag group names"
);
assert.equal(
assert.strictEqual(
count(".tag-info .synonyms-list .tag-box"),
2,
"shows the synonyms"
);
assert.equal(count(".tag-info .badge-category"), 1, "show the category");
assert.strictEqual(
count(".tag-info .badge-category"),
1,
"show the category"
);
assert.ok(!exists("#rename-tag"), "can't rename tag");
assert.ok(!exists("#edit-synonyms"), "can't edit synonyms");
assert.ok(!exists("#delete-tag"), "can't delete tag");
@ -407,7 +411,7 @@ acceptance("Tag info", function (needs) {
updateCurrentUser({ moderator: false, admin: true });
await visit("/tag/happy-monkey");
assert.equal(count("#show-tag-info"), 1);
assert.strictEqual(count("#show-tag-info"), 1);
await click("#show-tag-info");
assert.ok(exists(".tag-info .tag-name"), "show tag");
@ -431,14 +435,14 @@ acceptance("Tag info", function (needs) {
await click(".category-breadcrumb .category-drop-header");
await click('.category-breadcrumb .category-row[data-name="faq"]');
assert.equal(currentURL(), "/tags/c/faq/4/planters");
assert.strictEqual(currentURL(), "/tags/c/faq/4/planters");
});
test("admin can manage tags", async function (assert) {
updateCurrentUser({ moderator: false, admin: true });
await visit("/tag/planters");
assert.equal(count("#show-tag-info"), 1);
assert.strictEqual(count("#show-tag-info"), 1);
await click("#show-tag-info");
assert.ok(exists("#rename-tag"), "can rename tag");
@ -447,10 +451,14 @@ acceptance("Tag info", function (needs) {
await click("#edit-synonyms");
assert.ok(count(".unlink-synonym:visible"), 2, "unlink UI is visible");
assert.equal(count(".delete-synonym:visible"), 2, "delete UI is visible");
assert.strictEqual(
count(".delete-synonym:visible"),
2,
"delete UI is visible"
);
await click(".unlink-synonym:nth-of-type(1)");
assert.equal(
assert.strictEqual(
count(".tag-info .synonyms-list .tag-box"),
1,
"removed a synonym"
@ -461,6 +469,6 @@ acceptance("Tag info", function (needs) {
await visit("/tag/planters");
await click("#create-topic");
let composer = this.owner.lookup("controller:composer");
assert.equal(composer.get("model").tags, null);
assert.strictEqual(composer.get("model").tags, undefined);
});
});

View File

@ -51,7 +51,7 @@ acceptance("Topic - Admin Menu", function (needs) {
assert.ok(exists("#topic"), "The topic was rendered");
await click(".toggle-admin-menu");
assert.equal(
assert.strictEqual(
document.activeElement,
document.querySelector(".topic-admin-multi-select > button")
);

View File

@ -21,13 +21,13 @@ acceptance("Topic Discovery", function (needs) {
assert.ok(exists(".topic-list"), "The list of topics was rendered");
assert.ok(exists(".topic-list .topic-list-item"), "has topics");
assert.equal(
assert.strictEqual(
queryAll("a[data-user-card=eviltrout] img.avatar").attr("title"),
"Evil Trout - Most Posts",
"it shows user's full name in avatar title"
);
assert.equal(
assert.strictEqual(
queryAll("a[data-user-card=eviltrout] img.avatar").attr("loading"),
"lazy",
"it adds loading=`lazy` to topic list avatars"

View File

@ -133,8 +133,8 @@ acceptance("Topic - Edit timer", function (needs) {
await timerType.expand();
await timerType.selectRowByValue("publish_to_category");
assert.equal(categoryChooser.header().label(), "uncategorized");
assert.equal(categoryChooser.header().value(), null);
assert.strictEqual(categoryChooser.header().label(), "uncategorized");
assert.strictEqual(categoryChooser.header().value(), null);
await categoryChooser.expand();
await categoryChooser.selectRowByValue("7");
@ -157,7 +157,7 @@ acceptance("Topic - Edit timer", function (needs) {
}
);
assert.equal(text, el.innerText);
assert.strictEqual(text, el.innerText);
});
test("schedule publish to category - visible for a private category", async function (assert) {
@ -173,8 +173,8 @@ acceptance("Topic - Edit timer", function (needs) {
await timerType.expand();
await timerType.selectRowByValue("publish_to_category");
assert.equal(categoryChooser.header().label(), "uncategorized");
assert.equal(categoryChooser.header().value(), null);
assert.strictEqual(categoryChooser.header().label(), "uncategorized");
assert.strictEqual(categoryChooser.header().value(), null);
await categoryChooser.expand();
await categoryChooser.selectRowByValue("7");
@ -197,7 +197,7 @@ acceptance("Topic - Edit timer", function (needs) {
}
);
assert.equal(text, el.innerText);
assert.strictEqual(text, el.innerText);
});
test("schedule publish to category - visible for an unlisted public topic", async function (assert) {
@ -217,8 +217,8 @@ acceptance("Topic - Edit timer", function (needs) {
await timerType.expand();
await timerType.selectRowByValue("publish_to_category");
assert.equal(categoryChooser.header().label(), "uncategorized");
assert.equal(categoryChooser.header().value(), null);
assert.strictEqual(categoryChooser.header().label(), "uncategorized");
assert.strictEqual(categoryChooser.header().value(), null);
await categoryChooser.expand();
await categoryChooser.selectRowByValue("7");
@ -241,7 +241,7 @@ acceptance("Topic - Edit timer", function (needs) {
}
);
assert.equal(text, el.innerText);
assert.strictEqual(text, el.innerText);
});
test("schedule publish to category - last custom date and time", async function (assert) {
@ -338,11 +338,11 @@ acceptance("Topic - Edit timer", function (needs) {
await click(".edit-topic-timer-buttons button.btn-primary");
const removeTimerButton = queryAll(".topic-timer-info .topic-timer-remove");
assert.equal(removeTimerButton.attr("title"), "remove timer");
assert.strictEqual(removeTimerButton.attr("title"), "remove timer");
await click(".topic-timer-info .topic-timer-remove");
const topicTimerInfo = queryAll(".topic-timer-info .topic-timer-remove");
assert.equal(topicTimerInfo.length, 0);
assert.strictEqual(topicTimerInfo.length, 0);
});
test("Shows correct time frame options", async function (assert) {

View File

@ -40,12 +40,12 @@ acceptance("Topic footer buttons mobile", function (needs) {
test("default", async function (assert) {
await visit("/t/internationalization-localization/280");
assert.equal(_test, null);
assert.strictEqual(_test, undefined);
const subject = selectKit(".topic-footer-mobile-dropdown");
await subject.expand();
await subject.selectRowByValue("my-button");
assert.equal(_test, 2);
assert.strictEqual(_test, 2);
});
});

View File

@ -11,14 +11,14 @@ acceptance("Topic list tracking", function () {
test("Navigation", async function (assert) {
await visit("/");
let url = await nextTopicUrl();
assert.equal(url, "/t/error-after-upgrade-to-0-9-7-9/11557");
assert.strictEqual(url, "/t/error-after-upgrade-to-0-9-7-9/11557");
setTopicId(11557);
url = await nextTopicUrl();
assert.equal(url, "/t/welcome-to-meta-discourse-org/1");
assert.strictEqual(url, "/t/welcome-to-meta-discourse-org/1");
url = await previousTopicUrl();
assert.equal(url, "/t/error-after-upgrade-to-0-9-7-9/11557");
assert.strictEqual(url, "/t/error-after-upgrade-to-0-9-7-9/11557");
});
});

View File

@ -12,7 +12,7 @@ acceptance("Topic move posts", function (needs) {
await click(".topic-admin-multi-select .btn");
await click("#post_11 .select-below");
assert.equal(
assert.strictEqual(
queryAll(".selected-posts .move-to-topic").text().trim(),
I18n.t("topic.move_to.action"),
"it should show the move to button"
@ -91,7 +91,7 @@ acceptance("Topic move posts", function (needs) {
await click(".topic-admin-multi-select .btn");
await click("#post_1 .select-post");
assert.equal(
assert.strictEqual(
queryAll(".selected-posts .move-to-topic").text().trim(),
I18n.t("topic.move_to.action"),
"it should show the move to button"
@ -127,7 +127,7 @@ acceptance("Topic move posts", function (needs) {
await click(".topic-admin-multi-select .btn");
await click("#post_2 .select-below");
assert.equal(
assert.strictEqual(
queryAll(".selected-posts .move-to-topic").text().trim(),
I18n.t("topic.move_to.action"),
"it should show the move to button"

View File

@ -27,7 +27,7 @@ acceptance("Topic Notifications button", function (needs) {
await notificationOptions.expand();
await notificationOptions.selectRowByValue("3");
assert.equal(
assert.strictEqual(
notificationOptions.header().label(),
"Watching",
"it should display the right notification level"
@ -37,7 +37,7 @@ acceptance("Topic Notifications button", function (needs) {
".topic-timeline .widget-component-connector .topic-notifications-options"
);
assert.equal(
assert.strictEqual(
timelineNotificationOptions.header().value(),
"3",
"it should display the right notification level"
@ -46,13 +46,13 @@ acceptance("Topic Notifications button", function (needs) {
await timelineNotificationOptions.expand();
await timelineNotificationOptions.selectRowByValue("0");
assert.equal(
assert.strictEqual(
timelineNotificationOptions.header().value(),
"0",
"it should display the right notification level"
);
assert.equal(
assert.strictEqual(
notificationOptions.header().label(),
"Muted",
"it should display the right notification level"

View File

@ -54,7 +54,7 @@ acceptance("Topic - Quote button - logged in", function (needs) {
await selectText("#post_3 aside.onebox p");
await click(".insert-quote");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().trim(),
'[quote="group_moderator, post:3, topic:2480"]\nhttps://example.com/57350945\n[/quote]',
"quote only contains a link"

View File

@ -40,7 +40,7 @@ acceptance("Topic - Slow Mode - enabled", function (needs) {
await click(".topic-admin-slow-mode button");
const slowModeType = selectKit(".slow-mode-type");
assert.equal(
assert.strictEqual(
slowModeType.header().name(),
I18n.t("topic.slow_mode_update.durations.10_minutes"),
"slow mode interval is rendered"
@ -50,7 +50,7 @@ acceptance("Topic - Slow Mode - enabled", function (needs) {
// but at least we can make sure that components for choosing date and time are rendered
// (in case of inactive slow mode it would be only a combo box with text "Select a timeframe",
// and date picker and time picker wouldn't be rendered)
assert.equal(
assert.strictEqual(
query("div.enabled-until span.name").innerText,
I18n.t("topic.auto_update_input.pick_date_and_time"),
"enabled until combobox is switched to the option Pick Date and Time"
@ -66,7 +66,7 @@ acceptance("Topic - Slow Mode - enabled", function (needs) {
await click(".topic-admin-slow-mode button");
await click(".future-date-input-selector-header");
assert.equal(
assert.strictEqual(
query("div.modal-footer button.btn-primary span").innerText,
I18n.t("topic.slow_mode_update.enable"),
"shows 'Enable' button when slow mode is disabled"
@ -77,7 +77,7 @@ acceptance("Topic - Slow Mode - enabled", function (needs) {
await click(".topic-admin-slow-mode button");
await click(".future-date-input-selector-header");
assert.equal(
assert.strictEqual(
query("div.modal-footer button.btn-primary span").innerText,
I18n.t("topic.slow_mode_update.update"),
"shows 'Update' button when slow mode is enabled"

View File

@ -29,12 +29,12 @@ acceptance("Topic", function (needs) {
assert.ok(exists(".d-editor-input"), "the composer input is visible");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().trim(),
`Continuing the discussion from [Internationalization / localization](${window.location.origin}/t/internationalization-localization/280):`,
"it fills composer with the ring string"
);
assert.equal(
assert.strictEqual(
selectKit(".category-chooser").header().value(),
"2",
"it fills category selector with the right category"
@ -48,14 +48,14 @@ acceptance("Topic", function (needs) {
assert.ok(exists(".d-editor-input"), "the composer input is visible");
assert.equal(
assert.strictEqual(
queryAll(".d-editor-input").val().trim(),
`Continuing the discussion from [PM for testing](${window.location.origin}/t/pm-for-testing/12):`,
"it fills composer with the ring string"
);
const privateMessageUsers = selectKit("#private-message-users");
assert.equal(
assert.strictEqual(
privateMessageUsers.header().value(),
"someguy,test,Group",
"it fills up the composer correctly"
@ -96,12 +96,12 @@ acceptance("Topic", function (needs) {
await categoryChooser.selectRowByValue(4);
await click("#topic-title .submit-edit");
assert.equal(
assert.strictEqual(
queryAll("#topic-title .badge-category").text(),
"faq",
"it displays the new category"
);
assert.equal(
assert.strictEqual(
queryAll(".fancy-title").text().trim(),
"this is the new title",
"it displays the new title"
@ -117,13 +117,13 @@ acceptance("Topic", function (needs) {
await click(".topic-post:nth-of-type(1) button.show-post-admin-menu");
await click(".btn.wiki");
assert.equal(count("button.wiki"), 1, "it shows the wiki icon");
assert.strictEqual(count("button.wiki"), 1, "it shows the wiki icon");
});
test("Visit topic routes", async function (assert) {
await visit("/t/12");
assert.equal(
assert.strictEqual(
queryAll(".fancy-title").text().trim(),
"PM for testing",
"it routes to the right topic"
@ -131,7 +131,7 @@ acceptance("Topic", function (needs) {
await visit("/t/280/20");
assert.equal(
assert.strictEqual(
queryAll(".fancy-title").text().trim(),
"Internationalization / localization",
"it routes to the right topic"
@ -187,7 +187,7 @@ acceptance("Topic", function (needs) {
test("Suggested topics", async function (assert) {
await visit("/t/internationalization-localization/280");
assert.equal(
assert.strictEqual(
queryAll("#suggested-topics .suggested-topics-title").text().trim(),
I18n.t("suggested_topics.title")
);
@ -242,8 +242,8 @@ acceptance("Topic featured links", function (needs) {
await visit("/t/-/299/1");
const link = queryAll(".title-wrapper .topic-featured-link");
assert.equal(link.text(), " example.com");
assert.equal(link.attr("rel"), "ugc");
assert.strictEqual(link.text(), " example.com");
assert.strictEqual(link.attr("rel"), "ugc");
});
test("remove featured link", async function (assert) {

Some files were not shown because too many files have changed in this diff Show More