diff --git a/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js b/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js index 0eac23bc6fe..f2cd00f4704 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-badges-award-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-badges-award-test.js index c2c6e66119e..8f9ad67e772 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-badges-award-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-badges-award-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-badges-show-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-badges-show-test.js index e0a52b16451..531342e2fff 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-badges-show-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-badges-show-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js index 0b2342b9dc6..12af83c2bbe 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js @@ -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." ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-install-theme-modal-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-install-theme-modal-test.js index 8c85c6e6250..27eaf158d75 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-install-theme-modal-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-install-theme-modal-test.js @@ -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(), diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js index af086ac6d91..d5ace605562 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js @@ -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" ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js index 5cfcb3b7ecc..b61f9f71571 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js @@ -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")); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js index 2c66f4dbb65..ade2b2cafaa 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js @@ -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"); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js index 400d03e5c8f..15fba577945 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js index c1403fa8609..bb766e5ca80 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js @@ -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() ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js index 86d4bbee413..a15c4d69244 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js @@ -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(), "eviltrout@example.com", "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() diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js index 5e40f78497f..31c994435dc 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js @@ -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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js b/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js index c2a71a4adf3..0545939c499 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js @@ -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"), diff --git a/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js b/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js index d5eadc0748a..cd0a9bf3182 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js @@ -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'" diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js index 28116183515..8e9f67798d7 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js index 81d2b9abdfe..7708c8b6a89 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js index 072fba5ae57..efdbf1ab7c3 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js @@ -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)" diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js index 8ed7bcfa584..606daae3980 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js index 8d19fc5b2f8..adfd895391b 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js @@ -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", diff --git a/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js b/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js index a8beee4272c..3fde9f90b2c 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js @@ -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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js index 1771a57f326..65b353ef8a0 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js @@ -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") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js index 1fe8845f4e0..37ed65aca3e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js @@ -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(), '
' ); @@ -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(), '' ); @@ -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(), '' ); @@ -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(), "\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\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\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\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\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\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\n[Uploading: image.png...]()\n\n" ); await queryAll(".wmd-controls").trigger("fileuploaddone", image1); - assert.equal( + assert.strictEqual( queryAll(".d-editor-input").val(), "\n\n[Uploading: image.png...]()\n\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(), "\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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-draft-saving-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-draft-saving-test.js index 22676e94145..d6944293fd8 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-draft-saving-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-draft-saving-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js index 841545e9e4e..7bb48699321 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js index a780a6a27b6..507641d7228 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js @@ -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.", "doesn’t 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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js index fd5f09d1d43..7a875def554 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js @@ -28,7 +28,7 @@ http://www.example.com/has-title.html ` ); - assert.equal( + assert.strictEqual( queryAll(".d-editor-preview:visible").html().trim(), `
@@ -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(),
'
Test www.example.com/page
' ); 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(), 'Test www.example.com/page Test
' ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js index 5363c3edd34..eeb74e7dace 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js @@ -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(), "/"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js index e7d3ec797ba..28831241ff9 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js @@ -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(), "this is the content of a post
", "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") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js index 67587ee9c86..ce2e1468813 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-uploads-uppy-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-uploads-uppy-test.js index 8148f1b4ecd..773e8bbae59 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-uploads-uppy-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-uploads-uppy-test.js @@ -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\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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js b/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js index a5548ab424a..bfeb8222e11 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js @@ -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" ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/create-invite-modal-test.js b/app/assets/javascripts/discourse/tests/acceptance/create-invite-modal-test.js index 5f521e5993f..71a33eab9a5 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/create-invite-modal-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/create-invite-modal-test.js @@ -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." ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js b/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js index 8266f7a9df3..bd5222b34ec 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js @@ -18,7 +18,7 @@ acceptance("CustomHTML set", function () { setCustomHTML("top", 'HTML'); 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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js index a1d52f58118..1d81a2c726e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js b/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js index ac67b052df5..fac3c52d7ea 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js @@ -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" ); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/do-not-disturb-test.js b/app/assets/javascripts/discourse/tests/acceptance/do-not-disturb-test.js index 7f376eafbde..2e27ca50425 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/do-not-disturb-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/do-not-disturb-test.js @@ -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"); diff --git a/app/assets/javascripts/discourse/tests/acceptance/edit-notification-click-test.js b/app/assets/javascripts/discourse/tests/acceptance/edit-notification-click-test.js index 00f5fa61c1b..e9aace5b6db 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/edit-notification-click-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/edit-notification-click-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js index fdaaabb1f20..3b05a635128 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js @@ -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") ), diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js index 9d5a8cd7bc7..fed440044be 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js @@ -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(), `this is an emoji
this is an emoji
this is a category hashtag #bug
this is a tag hashtag #monkey
diff --git a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js index 432f5c37e33..a7adf016a4f 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js @@ -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") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js b/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js index 3afb2a1bab4..94d60b9ab85 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js b/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js index 85895d83d8a..4ab616174cc 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js @@ -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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js index 2731a37854a..7b72de09a68 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js index 283ad787377..206cfdacfb2 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js index fdb7114bf3a..f2264fd98b1 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js @@ -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", diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js index ad9edeeffac..b009495530d 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js @@ -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", diff --git a/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js b/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js index 373896fe0d1..43be07e2f92 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/mobile-pan-test.js b/app/assets/javascripts/discourse/tests/acceptance/mobile-pan-test.js index 0aa70c8abe3..0c7b589afde 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/mobile-pan-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/mobile-pan-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/modal-test.js b/app/assets/javascripts/discourse/tests/acceptance/modal-test.js index 72ce0b2101f..08b193e9537 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/modal-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/modal-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js b/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js index 96ffed16843..9ecd8abb17d 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js index 1d5a9bdbf6c..311a91837d3 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js @@ -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" ); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/notifications-test.js b/app/assets/javascripts/discourse/tests/acceptance/notifications-test.js index 3eda729a3bc..c1571cdcf8c 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/notifications-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/notifications-test.js @@ -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()) diff --git a/app/assets/javascripts/discourse/tests/acceptance/opengraph-tag-updater-test.js b/app/assets/javascripts/discourse/tests/acceptance/opengraph-tag-updater-test.js index ab3a72e1e98..622c183a710 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/opengraph-tag-updater-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/opengraph-tag-updater-test.js @@ -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"), diff --git a/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js b/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js index 1558b244eed..c7f705c1820 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js @@ -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") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js index b2831ec7d00..591942331f8 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js index e69156dd531..824152bffd0 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js index 99f0e800c8e..8ed094ef2ba 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js @@ -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"); diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js index ae0e298abff..4299f3d1b10 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js index 27fc2e74439..2330dd2a565 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js b/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js index d0b2d9029e6..9508547b5ad 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js b/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js index ba6465bf713..db37d71a40e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js b/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js index 71e2279743b..8774ebf8e4c 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/reports-test.js b/app/assets/javascripts/discourse/tests/acceptance/reports-test.js index 14928dafe2d..38d766f14cb 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/reports-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/reports-test.js @@ -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" ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/review-test.js b/app/assets/javascripts/discourse/tests/acceptance/review-test.js index e4711c964ad..af0fba8465e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/review-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/review-test.js @@ -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(), "cooked content" ); - 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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js index 277fb778401..d7263776c40 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js @@ -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); diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js index 14063d57505..81587214c9a 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-test.js index 673430067a3..2f205413bf3 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/search-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/search-test.js @@ -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}`); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js b/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js index 3b498dd35d3..f21315b6e85 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js b/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js index 55c46a3e0b7..182abe9802b 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js @@ -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(), "eviltrout@example.com" ); 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(), "current@example.com" ); @@ -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) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/static-test.js b/app/assets/javascripts/discourse/tests/acceptance/static-test.js index 55fa797140f..4071f1b6204 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/static-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/static-test.js @@ -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`" diff --git a/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js b/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js index fe9be3e3724..2b62cbc4141 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js @@ -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'" diff --git a/app/assets/javascripts/discourse/tests/acceptance/tags-test.js b/app/assets/javascripts/discourse/tests/acceptance/tags-test.js index adc5277edb8..b37b8c26518 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/tags-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/tags-test.js @@ -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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js index cba99e8f8f7..bcfcac2ae6d 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js @@ -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") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js index 3002c1024e6..0f7ad82e52e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js index 6614ed59420..2ef5bc385cb 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js @@ -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) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js index bbf42fdf7df..2a91f175811 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js @@ -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); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js index 72d747d0445..920b97de3d1 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js @@ -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"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js index 442b109dcd2..04a1e68ad53 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js index b345fb36a1c..9e9410c7e5e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js index 121dc0917b5..93b7881feb8 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-slow-mode-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-slow-mode-test.js index 8b1449cfbac..b93dd7880fc 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-slow-mode-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-slow-mode-test.js @@ -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" diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js index a4f53804ba9..525695f1745 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js @@ -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) { diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-timeline-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-timeline-test.js index 51b377d19dd..ec47b6de834 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-timeline-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-timeline-test.js @@ -334,6 +334,6 @@ acceptance("Topic Timeline", function (needs) { test("Shows dates of first and last posts", async function (assert) { await visit("/t/deleted-topic-with-whisper-post/129"); - assert.equal(query(".now-date").innerText, "Jul 2020"); + assert.strictEqual(query(".now-date").innerText, "Jul 2020"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js b/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js index 3f8dba03be6..b14e9f08df5 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js @@ -16,11 +16,11 @@ acceptance("Category 404", function (needs) { await visit("/t/internationalization-localization/280"); await click('[data-for-test="category-404"]'); - assert.equal(currentURL(), "/404"); + assert.strictEqual(currentURL(), "/404"); // See that we can navigate away await click("#site-logo"); - assert.equal(currentURL(), "/"); + assert.strictEqual(currentURL(), "/"); }); }); @@ -55,11 +55,14 @@ acceptance("Unknown", function (needs) { test("Permalink URL to a Topic", async function (assert) { await visit("/viewtopic.php?f=8&t=280"); - assert.equal(currentURL(), "/t/internationalization-localization/280"); + assert.strictEqual( + currentURL(), + "/t/internationalization-localization/280" + ); }); test("Permalink URL to a static page", async function (assert) { await visit("/another-url-for-faq"); - assert.equal(currentURL(), "/faq"); + assert.strictEqual(currentURL(), "/faq"); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-activity-all-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-activity-all-test.js index 5d648d76d8e..701b9852e46 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-activity-all-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-activity-all-test.js @@ -22,7 +22,7 @@ acceptance("User Activity / All - empty state", function (needs) { test("When looking at another user activity it renders the 'No activity' message", async function (assert) { await visit("/u/charlie/activity"); assert.ok(exists("div.alert-info")); - assert.equal( + assert.strictEqual( query("div.alert-info").innerText.trim(), I18n.t("user_activity.no_activity_others") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-activity-likes-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-activity-likes-test.js index 9b18353fd4c..fea8c445bed 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-activity-likes-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-activity-likes-test.js @@ -22,7 +22,7 @@ acceptance("User Activity / Likes - empty state", function (needs) { test("When looking at another user activity it renders the 'No activity' message", async function (assert) { await visit("/u/charlie/activity/likes-given"); assert.ok(exists("div.alert-info")); - assert.equal( + assert.strictEqual( query("div.alert-info").innerText.trim(), I18n.t("user_activity.no_likes_others") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-activity-replies-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-activity-replies-test.js index 2c44313862d..b0b7690a988 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-activity-replies-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-activity-replies-test.js @@ -22,7 +22,7 @@ acceptance("User Activity / Replies - empty state", function (needs) { test("When looking at another user activity it renders the 'No activity' message", async function (assert) { await visit("/u/charlie/activity/replies"); assert.ok(exists("div.alert-info")); - assert.equal( + assert.strictEqual( query("div.alert-info").innerText.trim(), I18n.t("user_activity.no_replies_others") ); diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js index e3d014df891..e6696e68a05 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js @@ -6,7 +6,11 @@ acceptance("User Anonymous", function () { test("Root URL", async function (assert) { await visit("/u/eviltrout"); assert.ok($("body.user-summary-page").length, "has the body class"); - assert.equal(currentRouteName(), "user.summary", "it defaults to summary"); + assert.strictEqual( + currentRouteName(), + "user.summary", + "it defaults to summary" + ); }); test("Filters", async function (assert) { @@ -35,7 +39,7 @@ acceptance("User Anonymous", function () { test("Restricted Routes", async function (assert) { await visit("/u/eviltrout/preferences"); - assert.equal( + assert.strictEqual( currentURL(), "/u/eviltrout/activity", "it redirects from preferences" diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js index c762e7ddce5..5445eceec96 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js @@ -14,13 +14,13 @@ acceptance("User Drafts", function (needs) { test("Stream", async function (assert) { await visit("/u/eviltrout/activity/drafts"); - assert.equal(count(".user-stream-item"), 3, "has drafts"); + assert.strictEqual(count(".user-stream-item"), 3, "has drafts"); await click(".user-stream-item:last-child .remove-draft"); assert.ok(visible(".bootbox")); await click(".bootbox .btn-primary"); - assert.equal( + assert.strictEqual( count(".user-stream-item"), 2, "draft removed, list length diminished by one" @@ -32,7 +32,7 @@ acceptance("User Drafts", function (needs) { assert.ok(exists(".user-stream-item"), "has drafts"); await click(".user-stream-item .resume-draft"); - assert.equal( + assert.strictEqual( queryAll(".d-editor-input").val().trim(), "A fun new topic for testing drafts." ); @@ -41,11 +41,11 @@ acceptance("User Drafts", function (needs) { test("Stream - has excerpt", async function (assert) { await visit("/u/eviltrout/activity/drafts"); assert.ok(exists(".user-stream-item"), "has drafts"); - assert.equal( + assert.strictEqual( query(".user-stream-item:nth-child(3) .category").textContent, "meta" ); - assert.equal( + assert.strictEqual( query(".user-stream-item:nth-child(3) .excerpt").innerHTML.trim(), 'here goes a reply to a PMfoo
"); + assert.strictEqual(html, "foo
"); }, }); @@ -43,7 +43,7 @@ discourseModule("Integration | Component | cook-text", function (hooks) { test(assert) { const html = query(".post-body").innerHTML.trim(); - assert.equal( + assert.strictEqual( html, 'hello world
" ); @@ -43,7 +43,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { async test(assert) { await fillIn(".d-editor-input", "[discourse](https://www.discourse.org)"); - assert.equal( + assert.strictEqual( queryAll(".d-editor-preview").html().trim(), '' ); @@ -55,7 +55,10 @@ discourseModule("Integration | Component | d-editor", function (hooks) { async test(assert) { await fillIn(".d-editor-input", `">`); - assert.equal(queryAll(".d-editor-preview").html().trim(), '">
'); + assert.strictEqual( + queryAll(".d-editor-preview").html().trim(), + '">
' + ); }, }); @@ -67,7 +70,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { }, async test(assert) { - assert.equal( + assert.strictEqual( queryAll(".d-editor-preview").html().trim(), "evil trout
" ); @@ -75,7 +78,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { this.set("value", "zogstrip"); await settled(); - assert.equal( + assert.strictEqual( queryAll(".d-editor-preview").html().trim(), "zogstrip
" ); @@ -124,9 +127,9 @@ discourseModule("Integration | Component | d-editor", function (hooks) { await click(`button.bold`); - assert.equal(this.value, `hello **w**orld.`); - assert.equal(textarea.selectionStart, 8); - assert.equal(textarea.selectionEnd, 9); + assert.strictEqual(this.value, `hello **w**orld.`); + assert.strictEqual(textarea.selectionStart, 8); + assert.strictEqual(textarea.selectionEnd, 9); } ); @@ -138,9 +141,9 @@ discourseModule("Integration | Component | d-editor", function (hooks) { await click(`button.bold`); - assert.equal(this.value, `**hello** world.`); - assert.equal(textarea.selectionStart, 2); - assert.equal(textarea.selectionEnd, 7); + assert.strictEqual(this.value, `**hello** world.`); + assert.strictEqual(textarea.selectionStart, 2); + assert.strictEqual(textarea.selectionEnd, 7); } ); @@ -148,9 +151,9 @@ discourseModule("Integration | Component | d-editor", function (hooks) { await click(`button.bold`); const example = I18n.t(`composer.bold_text`); - assert.equal(this.value, `hello world.**${example}**`); - assert.equal(textarea.selectionStart, 14); - assert.equal(textarea.selectionEnd, 14 + example.length); + assert.strictEqual(this.value, `hello world.**${example}**`); + assert.strictEqual(textarea.selectionStart, 14); + assert.strictEqual(textarea.selectionEnd, 14 + example.length); }); testCase(`bold button with a selection`, async function (assert, textarea) { @@ -158,14 +161,14 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = 11; await click(`button.bold`); - assert.equal(this.value, `hello **world**.`); - assert.equal(textarea.selectionStart, 8); - assert.equal(textarea.selectionEnd, 13); + assert.strictEqual(this.value, `hello **world**.`); + assert.strictEqual(textarea.selectionStart, 8); + assert.strictEqual(textarea.selectionEnd, 13); await click(`button.bold`); - assert.equal(this.value, "hello world."); - assert.equal(textarea.selectionStart, 6); - assert.equal(textarea.selectionEnd, 11); + assert.strictEqual(this.value, "hello world."); + assert.strictEqual(textarea.selectionStart, 6); + assert.strictEqual(textarea.selectionEnd, 11); }); testCase( @@ -177,14 +180,14 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = 12; await click(`button.bold`); - assert.equal(this.value, `**hello**\n\n**world**\n\ntest.`); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 20); + assert.strictEqual(this.value, `**hello**\n\n**world**\n\ntest.`); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 20); await click(`button.bold`); - assert.equal(this.value, `hello\n\nworld\n\ntest.`); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, `hello\n\nworld\n\ntest.`); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 12); } ); @@ -193,10 +196,10 @@ discourseModule("Integration | Component | d-editor", function (hooks) { async function (assert, textarea) { await click(`button.italic`); const example = I18n.t(`composer.italic_text`); - assert.equal(this.value, `hello world.*${example}*`); + assert.strictEqual(this.value, `hello world.*${example}*`); - assert.equal(textarea.selectionStart, 13); - assert.equal(textarea.selectionEnd, 13 + example.length); + assert.strictEqual(textarea.selectionStart, 13); + assert.strictEqual(textarea.selectionEnd, 13 + example.length); } ); @@ -205,14 +208,14 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = 11; await click(`button.italic`); - assert.equal(this.value, `hello *world*.`); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, `hello *world*.`); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 12); await click(`button.italic`); - assert.equal(this.value, "hello world."); - assert.equal(textarea.selectionStart, 6); - assert.equal(textarea.selectionEnd, 11); + assert.strictEqual(this.value, "hello world."); + assert.strictEqual(textarea.selectionStart, 6); + assert.strictEqual(textarea.selectionEnd, 11); }); testCase( @@ -224,14 +227,14 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = 12; await click(`button.italic`); - assert.equal(this.value, `*hello*\n\n*world*\n\ntest.`); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 16); + assert.strictEqual(this.value, `*hello*\n\n*world*\n\ntest.`); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 16); await click(`button.italic`); - assert.equal(this.value, `hello\n\nworld\n\ntest.`); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, `hello\n\nworld\n\ntest.`); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 12); } ); @@ -257,7 +260,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = textarea.value.length; await click("button.code"); - assert.equal( + assert.strictEqual( this.value, ` function xyz(x, y, z) { @@ -280,7 +283,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { const textarea = jumpEnd(query("textarea.d-editor-input")); await click("button.code"); - assert.equal(this.value, ` ${I18n.t("composer.code_text")}`); + assert.strictEqual(this.value, ` ${I18n.t("composer.code_text")}`); this.set("value", "first line\n\nsecond line\n\nthird line"); @@ -288,7 +291,7 @@ discourseModule("Integration | Component | d-editor", function (hooks) { textarea.selectionEnd = 11; await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `first line ${I18n.t("composer.code_text")} @@ -300,7 +303,7 @@ third line` this.set("value", "first line\n\nsecond line\n\nthird line"); await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `first line @@ -314,7 +317,7 @@ third line\`${I18n.t("composer.code_title")}\`` textarea.selectionEnd = 5; await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `first\`${I18n.t("composer.code_title")}\` line @@ -328,30 +331,33 @@ third line` textarea.selectionEnd = 10; await click("button.code"); - assert.equal(this.value, "first `line`\n\nsecond line\n\nthird line"); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 11); + assert.strictEqual( + this.value, + "first `line`\n\nsecond line\n\nthird line" + ); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 11); await click("button.code"); - assert.equal(this.value, "first line\n\nsecond line\n\nthird line"); - assert.equal(textarea.selectionStart, 6); - assert.equal(textarea.selectionEnd, 10); + assert.strictEqual(this.value, "first line\n\nsecond line\n\nthird line"); + assert.strictEqual(textarea.selectionStart, 6); + assert.strictEqual(textarea.selectionEnd, 10); textarea.selectionStart = 0; textarea.selectionEnd = 23; await click("button.code"); - assert.equal( + assert.strictEqual( this.value, " first line\n\n second line\n\nthird line" ); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 31); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 31); await click("button.code"); - assert.equal(this.value, "first line\n\nsecond line\n\nthird line"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 23); + assert.strictEqual(this.value, "first line\n\nsecond line\n\nthird line"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 23); }, }); @@ -365,15 +371,15 @@ third line` const textarea = jumpEnd(query("textarea.d-editor-input")); await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `\`\`\` ${I18n.t("composer.paste_code_text")} \`\`\`` ); - assert.equal(textarea.selectionStart, 4); - assert.equal(textarea.selectionEnd, 27); + assert.strictEqual(textarea.selectionStart, 4); + assert.strictEqual(textarea.selectionEnd, 27); this.set("value", "first line\nsecond line\nthird line"); @@ -382,7 +388,7 @@ ${I18n.t("composer.paste_code_text")} await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `\`\`\` first line @@ -392,8 +398,8 @@ third line ` ); - assert.equal(textarea.selectionStart, textarea.value.length); - assert.equal(textarea.selectionEnd, textarea.value.length); + assert.strictEqual(textarea.selectionStart, textarea.value.length); + assert.strictEqual(textarea.selectionEnd, textarea.value.length); this.set("value", "first line\nsecond line\nthird line"); @@ -402,15 +408,15 @@ third line await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `\`${I18n.t("composer.code_title")}\`first line second line third line` ); - assert.equal(textarea.selectionStart, 1); - assert.equal( + assert.strictEqual(textarea.selectionStart, 1); + assert.strictEqual( textarea.selectionEnd, I18n.t("composer.code_title").length + 1 ); @@ -422,15 +428,15 @@ third line` await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `\`first line\` second line third line` ); - assert.equal(textarea.selectionStart, 1); - assert.equal(textarea.selectionEnd, 11); + assert.strictEqual(textarea.selectionStart, 1); + assert.strictEqual(textarea.selectionEnd, 11); this.set("value", "first line\nsecond line\nthird line"); @@ -439,7 +445,7 @@ third line` await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `\`\`\` first line @@ -448,8 +454,8 @@ second line third line` ); - assert.equal(textarea.selectionStart, 30); - assert.equal(textarea.selectionEnd, 30); + assert.strictEqual(textarea.selectionStart, 30); + assert.strictEqual(textarea.selectionEnd, 30); this.set("value", "first line\nsecond line\nthird line"); @@ -458,13 +464,13 @@ third line` await click("button.code"); - assert.equal( + assert.strictEqual( this.value, `first \n\`\`\`\nline\nsecond\n\`\`\`\n line\nthird line` ); - assert.equal(textarea.selectionStart, 27); - assert.equal(textarea.selectionEnd, 27); + assert.strictEqual(textarea.selectionStart, 27); + assert.strictEqual(textarea.selectionEnd, 27); }, }); @@ -480,12 +486,12 @@ third line` await click("button.blockquote"); - assert.equal(this.value, "> one\n> \n> two\n> \n> three"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 25); + assert.strictEqual(this.value, "> one\n> \n> two\n> \n> three"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 25); await click("button.blockquote"); - assert.equal(this.value, "one\n\ntwo\n\nthree"); + assert.strictEqual(this.value, "one\n\ntwo\n\nthree"); }, }); @@ -501,7 +507,7 @@ third line` textarea.selectionEnd = 10; await click("button.blockquote"); - assert.equal(this.value, "one\n\n\n> \n> two"); + assert.strictEqual(this.value, "one\n\n\n> \n> two"); }, }); @@ -510,21 +516,21 @@ third line` textarea.selectionEnd = 9; await click("button.blockquote"); - assert.equal(this.value, "hello\n\n> wor\n\nld."); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, "hello\n\n> wor\n\nld."); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 12); await click("button.blockquote"); - assert.equal(this.value, "hello\n\nwor\n\nld."); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 10); + assert.strictEqual(this.value, "hello\n\nwor\n\nld."); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 10); textarea.selectionStart = 15; textarea.selectionEnd = 15; await click("button.blockquote"); - assert.equal(this.value, "hello\n\nwor\n\nld.\n\n> Blockquote"); + assert.strictEqual(this.value, "hello\n\nwor\n\nld.\n\n> Blockquote"); }); testCase( @@ -533,12 +539,12 @@ third line` const example = I18n.t("composer.list_item"); await click(`button.bullet`); - assert.equal(this.value, `hello world.\n\n* ${example}`); - assert.equal(textarea.selectionStart, 14); - assert.equal(textarea.selectionEnd, 16 + example.length); + assert.strictEqual(this.value, `hello world.\n\n* ${example}`); + assert.strictEqual(textarea.selectionStart, 14); + assert.strictEqual(textarea.selectionEnd, 16 + example.length); await click(`button.bullet`); - assert.equal(this.value, `hello world.\n\n${example}`); + assert.strictEqual(this.value, `hello world.\n\n${example}`); } ); @@ -547,14 +553,14 @@ third line` textarea.selectionEnd = 11; await click(`button.bullet`); - assert.equal(this.value, `hello\n\n* world\n\n.`); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 14); + assert.strictEqual(this.value, `hello\n\n* world\n\n.`); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 14); await click(`button.bullet`); - assert.equal(this.value, `hello\n\nworld\n\n.`); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, `hello\n\nworld\n\n.`); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 12); }); testCase( @@ -566,14 +572,14 @@ third line` textarea.selectionEnd = 20; await click(`button.bullet`); - assert.equal(this.value, "Hello\n\nWorld\n\nEvil"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 18); + assert.strictEqual(this.value, "Hello\n\nWorld\n\nEvil"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 18); await click(`button.bullet`); - assert.equal(this.value, "* Hello\n\n* World\n\n* Evil"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 24); + assert.strictEqual(this.value, "* Hello\n\n* World\n\n* Evil"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 24); } ); @@ -581,14 +587,14 @@ third line` const example = I18n.t("composer.list_item"); await click(`button.list`); - assert.equal(this.value, `hello world.\n\n1. ${example}`); - assert.equal(textarea.selectionStart, 14); - assert.equal(textarea.selectionEnd, 17 + example.length); + assert.strictEqual(this.value, `hello world.\n\n1. ${example}`); + assert.strictEqual(textarea.selectionStart, 14); + assert.strictEqual(textarea.selectionEnd, 17 + example.length); await click(`button.list`); - assert.equal(this.value, `hello world.\n\n${example}`); - assert.equal(textarea.selectionStart, 14); - assert.equal(textarea.selectionEnd, 14 + example.length); + assert.strictEqual(this.value, `hello world.\n\n${example}`); + assert.strictEqual(textarea.selectionStart, 14); + assert.strictEqual(textarea.selectionEnd, 14 + example.length); }); testCase(`list button with a selection`, async function (assert, textarea) { @@ -596,14 +602,14 @@ third line` textarea.selectionEnd = 11; await click(`button.list`); - assert.equal(this.value, `hello\n\n1. world\n\n.`); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 15); + assert.strictEqual(this.value, `hello\n\n1. world\n\n.`); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 15); await click(`button.list`); - assert.equal(this.value, `hello\n\nworld\n\n.`); - assert.equal(textarea.selectionStart, 7); - assert.equal(textarea.selectionEnd, 12); + assert.strictEqual(this.value, `hello\n\nworld\n\n.`); + assert.strictEqual(textarea.selectionStart, 7); + assert.strictEqual(textarea.selectionEnd, 12); }); testCase(`list button with line sequence`, async function (assert, textarea) { @@ -613,14 +619,14 @@ third line` textarea.selectionEnd = 18; await click(`button.list`); - assert.equal(this.value, "1. Hello\n\n2. World\n\n3. Evil"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 27); + assert.strictEqual(this.value, "1. Hello\n\n2. World\n\n3. Evil"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 27); await click(`button.list`); - assert.equal(this.value, "Hello\n\nWorld\n\nEvil"); - assert.equal(textarea.selectionStart, 0); - assert.equal(textarea.selectionEnd, 18); + assert.strictEqual(this.value, "Hello\n\nWorld\n\nEvil"); + assert.strictEqual(textarea.selectionStart, 0); + assert.strictEqual(textarea.selectionEnd, 18); }); componentTest("clicking the toggle-direction changes dir from ltr to rtl", { @@ -633,7 +639,7 @@ third line` async test(assert) { const textarea = queryAll("textarea.d-editor-input"); await click("button.toggle-direction"); - assert.equal(textarea.attr("dir"), "rtl"); + assert.strictEqual(textarea.attr("dir"), "rtl"); }, }); @@ -648,7 +654,7 @@ third line` const textarea = queryAll("textarea.d-editor-input"); textarea.attr("dir", "ltr"); await click("button.toggle-direction"); - assert.equal(textarea.attr("dir"), "rtl"); + assert.strictEqual(textarea.attr("dir"), "rtl"); }, }); @@ -666,7 +672,7 @@ third line` textarea.selectionEnd = 3; await click("button.bold"); - assert.equal($(textarea).scrollTop(), 0, "it stays scrolled up"); + assert.strictEqual($(textarea).scrollTop(), 0, "it stays scrolled up"); } ); @@ -698,7 +704,7 @@ third line` await click( '.emoji-picker .section[data-section="smileys_&_emotion"] img.emoji[title="grinning"]' ); - assert.equal(this.value, "hello world. :grinning:"); + assert.strictEqual(this.value, "hello world. :grinning:"); }, }); @@ -709,7 +715,7 @@ third line` .lookup("service:app-events") .trigger("composer:replace-text", "green", "yellow"); - assert.equal(this.value, "red green blue"); + assert.strictEqual(this.value, "red green blue"); }); composerTestCase("replace-text event for composer", async function (assert) { @@ -719,7 +725,7 @@ third line` .lookup("service:app-events") .trigger("composer:replace-text", "green", "yellow"); - assert.equal(this.value, "red yellow blue"); + assert.strictEqual(this.value, "red yellow blue"); }); async function paste(element, text) { @@ -739,7 +745,7 @@ third line` async test(assert) { let element = query(".d-editor"); await paste(element, "\ta\tb\n1\t2\t3"); - assert.equal(this.value, "||a|b|\n|---|---|---|\n|1|2|3|\n"); + assert.strictEqual(this.value, "||a|b|\n|---|---|---|\n|1|2|3|\n"); }, }); @@ -753,7 +759,7 @@ third line` async test(assert) { let element = query(".d-editor"); await paste(element, '\ta\tb\n1\t"2\n2.5"\t3'); - assert.equal(this.value, "||a|b|\n|---|---|---|\n|1|2