DEV: Replace `count` with qunit-dom (#29674)
This commit is contained in:
parent
f9e58938ce
commit
d67a6002eb
|
@ -3,7 +3,7 @@ import { test } from "qunit";
|
|||
import { AUTO_GROUPS } from "discourse/lib/constants";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import PreloadStore from "discourse/lib/preload-store";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
acceptance("Admin Sidebar - Sections", function (needs) {
|
||||
|
@ -96,30 +96,26 @@ acceptance("Admin Sidebar - Sections", function (needs) {
|
|||
await click(".sidebar-toggle-all-sections");
|
||||
await click(".sidebar-section-link[data-link-name='admin_all_reports']");
|
||||
|
||||
assert.strictEqual(count(".admin-reports-list__report"), 1);
|
||||
assert.dom(".admin-reports-list__report").exists({ count: 1 });
|
||||
|
||||
await fillIn(".admin-reports-header__filter", "flags");
|
||||
|
||||
assert.strictEqual(count(".admin-reports-list__report"), 0);
|
||||
assert.dom(".admin-reports-list__report").doesNotExist();
|
||||
|
||||
await click(
|
||||
".sidebar-section-link[data-link-name='admin_login_and_authentication']"
|
||||
);
|
||||
await click(".sidebar-section-link[data-link-name='admin_all_reports']");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".admin-reports-list__report"),
|
||||
1,
|
||||
"navigating back and forth resets filter"
|
||||
);
|
||||
assert
|
||||
.dom(".admin-reports-list__report")
|
||||
.exists({ count: 1 }, "navigating back and forth resets filter");
|
||||
|
||||
await fillIn(".admin-reports-header__filter", "activities");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".admin-reports-list__report"),
|
||||
1,
|
||||
"filter is case insensitive"
|
||||
);
|
||||
assert
|
||||
.dom(".admin-reports-list__report")
|
||||
.exists({ count: 1 }, "filter is case insensitive");
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -8,11 +8,7 @@ import {
|
|||
import { test } from "qunit";
|
||||
import siteSettingFixture from "discourse/tests/fixtures/site-settings";
|
||||
import pretender from "discourse/tests/helpers/create-pretender";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
queryAll,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Admin - Site Settings", function (needs) {
|
||||
let updatedTitle;
|
||||
|
@ -65,11 +61,9 @@ 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.strictEqual(
|
||||
count(".row.setting"),
|
||||
1,
|
||||
"filter returns 1 site setting"
|
||||
);
|
||||
assert
|
||||
.dom(".row.setting")
|
||||
.exists({ count: 1 }, "filter returns 1 site setting");
|
||||
assert
|
||||
.dom(".row.setting.overridden")
|
||||
.doesNotExist("setting isn't overridden");
|
||||
|
@ -112,15 +106,15 @@ 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.strictEqual(count(".row.setting"), 1);
|
||||
assert.dom(".row.setting").exists({ count: 1 });
|
||||
|
||||
// navigate away to the "Dashboard" page
|
||||
await click(".nav.nav-pills li:nth-child(1) a");
|
||||
assert.strictEqual(count(".row.setting"), 0);
|
||||
assert.dom(".row.setting").exists({ count: 0 });
|
||||
|
||||
// navigate back to the "Settings" page
|
||||
await click(".nav.nav-pills li:nth-child(2) a");
|
||||
assert.strictEqual(count(".row.setting"), 1);
|
||||
assert.dom(".row.setting").exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("filtering overridden settings", async function (assert) {
|
||||
|
@ -135,11 +129,11 @@ acceptance("Admin - Site Settings", function (needs) {
|
|||
await visit("/admin/site_settings");
|
||||
|
||||
await fillIn("#setting-filter", "plugin:discourse-logo");
|
||||
assert.strictEqual(count(".row.setting"), 1);
|
||||
assert.dom(".row.setting").exists({ count: 1 });
|
||||
|
||||
// inexistent plugin
|
||||
await fillIn("#setting-filter", "plugin:discourse-plugin");
|
||||
assert.strictEqual(count(".row.setting"), 0);
|
||||
assert.dom(".row.setting").exists({ count: 0 });
|
||||
});
|
||||
|
||||
test("category name is preserved", async function (assert) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import DiscoveryFixtures from "discourse/tests/fixtures/discovery-fixtures";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Category Banners", function (needs) {
|
||||
needs.user();
|
||||
|
@ -55,11 +55,9 @@ acceptance("Category Banners", function (needs) {
|
|||
await click(".dialog-footer .btn-primary");
|
||||
assert.dom(".dialog-body").doesNotExist("closes the modal");
|
||||
assert.dom(".category-read-only-banner").exists("shows a banner");
|
||||
assert.strictEqual(
|
||||
count(".category-read-only-banner .inner"),
|
||||
1,
|
||||
"it allows staff to embed html in the message"
|
||||
);
|
||||
assert
|
||||
.dom(".category-read-only-banner .inner")
|
||||
.exists({ count: 1 }, "allows staff to embed html in the message");
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
queryAll,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -19,7 +18,7 @@ acceptance("Category Edit - Security", function (needs) {
|
|||
const badgeName = firstRow.querySelector(".group-name-label").innerText;
|
||||
assert.strictEqual(badgeName, "everyone");
|
||||
|
||||
assert.strictEqual(count(".d-icon-square-check"), 3);
|
||||
assert.dom(".d-icon-square-check").exists({ count: 3 });
|
||||
});
|
||||
|
||||
test("removing a permission", async function (assert) {
|
||||
|
@ -82,11 +81,7 @@ acceptance("Category Edit - Security", function (needs) {
|
|||
await availableGroups.expand();
|
||||
await availableGroups.selectRowByValue("everyone");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".row-body"),
|
||||
1,
|
||||
"adds back the permission tp the list"
|
||||
);
|
||||
assert.dom(".row-body").exists("adds back the permission tp the list");
|
||||
|
||||
const firstRow = query(".row-body");
|
||||
|
||||
|
|
|
@ -3,11 +3,7 @@ import { test } from "qunit";
|
|||
import sinon from "sinon";
|
||||
import DiscourseURL from "discourse/lib/url";
|
||||
import pretender from "discourse/tests/helpers/create-pretender";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
|
@ -69,16 +65,16 @@ acceptance("Category Edit", function (needs) {
|
|||
assert.dom(".minimum-required-tags").exists();
|
||||
|
||||
assert.dom(".required-tag-groups").exists();
|
||||
assert.strictEqual(count(".required-tag-group-row"), 0);
|
||||
assert.dom(".required-tag-group-row").doesNotExist();
|
||||
|
||||
await click(".add-required-tag-group");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 1);
|
||||
assert.dom(".required-tag-group-row").exists({ count: 1 });
|
||||
|
||||
await click(".add-required-tag-group");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 2);
|
||||
assert.dom(".required-tag-group-row").exists({ count: 2 });
|
||||
|
||||
await click(".delete-required-tag-group");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 1);
|
||||
assert.dom(".required-tag-group-row").exists({ count: 1 });
|
||||
|
||||
const tagGroupChooser = selectKit(
|
||||
".required-tag-group-row .tag-group-chooser"
|
||||
|
@ -87,13 +83,13 @@ acceptance("Category Edit", function (needs) {
|
|||
await tagGroupChooser.selectRowByValue("TagGroup1");
|
||||
|
||||
await click("#save-category");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 1);
|
||||
assert.dom(".required-tag-group-row").exists({ count: 1 });
|
||||
|
||||
await click(".delete-required-tag-group");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 0);
|
||||
assert.dom(".required-tag-group-row").doesNotExist();
|
||||
|
||||
await click("#save-category");
|
||||
assert.strictEqual(count(".required-tag-group-row"), 0);
|
||||
assert.dom(".required-tag-group-row").doesNotExist();
|
||||
});
|
||||
|
||||
test("Editing allowed tags and tag groups", async function (assert) {
|
||||
|
|
|
@ -6,7 +6,6 @@ import { toggleCheckDraftPopup } from "discourse/services/composer";
|
|||
import userFixtures from "discourse/tests/fixtures/user-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
selectText,
|
||||
updateCurrentUser,
|
||||
|
@ -91,20 +90,16 @@ acceptance("Composer Actions", function (needs) {
|
|||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-eye-slash")
|
||||
.doesNotExist("whisper icon is not visible");
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-share"),
|
||||
1,
|
||||
"reply icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.exists("reply icon is visible");
|
||||
|
||||
await composerActions.expand();
|
||||
await composerActions.selectRowByValue("toggle_whisper");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-far-eye-slash"),
|
||||
1,
|
||||
"whisper icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-eye-slash")
|
||||
.exists("whisper icon is visible");
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.doesNotExist("reply icon is not visible");
|
||||
|
@ -245,20 +240,16 @@ acceptance("Composer Actions", function (needs) {
|
|||
assert
|
||||
.dom(".composer-actions svg.d-icon-anchor")
|
||||
.doesNotExist("no-bump icon is not visible");
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-share"),
|
||||
1,
|
||||
"reply icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.exists("reply icon is visible");
|
||||
|
||||
await composerActions.expand();
|
||||
await composerActions.selectRowByValue("toggle_topic_bump");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-anchor"),
|
||||
1,
|
||||
"no-bump icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-anchor")
|
||||
.exists("no-bump icon is visible");
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.doesNotExist("reply icon is not visible");
|
||||
|
@ -269,11 +260,9 @@ acceptance("Composer Actions", function (needs) {
|
|||
assert
|
||||
.dom(".composer-actions svg.d-icon-anchor")
|
||||
.doesNotExist("no-bump icon is not visible");
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-share"),
|
||||
1,
|
||||
"reply icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.exists("reply icon is visible");
|
||||
});
|
||||
|
||||
test("replying to post - whisper and no bump", async function (assert) {
|
||||
|
@ -288,27 +277,21 @@ acceptance("Composer Actions", function (needs) {
|
|||
assert
|
||||
.dom(".reply-details .whisper .d-icon-anchor")
|
||||
.doesNotExist("no-bump icon is not visible");
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-share"),
|
||||
1,
|
||||
"reply icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.exists("reply icon is visible");
|
||||
|
||||
await composerActions.expand();
|
||||
await composerActions.selectRowByValue("toggle_topic_bump");
|
||||
await composerActions.expand();
|
||||
await composerActions.selectRowByValue("toggle_whisper");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-far-eye-slash"),
|
||||
1,
|
||||
"whisper icon is visible"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".reply-details .no-bump .d-icon-anchor"),
|
||||
1,
|
||||
"no-bump icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-eye-slash")
|
||||
.exists("whisper icon is visible");
|
||||
assert
|
||||
.dom(".reply-details .no-bump .d-icon-anchor")
|
||||
.exists("no-bump icon is visible");
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-share")
|
||||
.doesNotExist("reply icon is not visible");
|
||||
|
@ -434,11 +417,9 @@ acceptance("Composer Actions With New Topic Draft", function (needs) {
|
|||
assert
|
||||
.dom("#reply-control .btn-primary.create .d-button-label")
|
||||
.hasText(I18n.t("composer.create_shared_draft"));
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-far-clipboard"),
|
||||
1,
|
||||
"shared draft icon is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-clipboard")
|
||||
.exists("shared draft icon is visible");
|
||||
});
|
||||
|
||||
test("reply_as_new_topic with new_topic draft", async function (assert) {
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Composer - Image Preview", function (needs) {
|
||||
needs.user({});
|
||||
|
@ -71,11 +67,9 @@ acceptance("Composer - Image Preview", function (needs) {
|
|||
|
||||
await fillIn(".d-editor-input", uploads.join("\n"));
|
||||
|
||||
assert.strictEqual(
|
||||
count(".button-wrapper"),
|
||||
10,
|
||||
"it adds correct amount of scaling button groups"
|
||||
);
|
||||
assert
|
||||
.dom(".button-wrapper")
|
||||
.exists({ count: 10 }, "adds correct number of scaling button groups");
|
||||
|
||||
// Default
|
||||
uploads[0] =
|
||||
|
|
|
@ -24,7 +24,6 @@ import TopicFixtures from "discourse/tests/fixtures/topic";
|
|||
import pretender, { response } from "discourse/tests/helpers/create-pretender";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
metaModifier,
|
||||
query,
|
||||
updateCurrentUser,
|
||||
|
@ -523,7 +522,7 @@ acceptance("Composer", function (needs) {
|
|||
|
||||
pretender.put("/posts/:post_id", async () => {
|
||||
// at this point, request is in flight, so post is staged
|
||||
assert.strictEqual(count(".topic-post.staged"), 1);
|
||||
assert.dom(".topic-post.staged").exists();
|
||||
assert.ok(query(".topic-post").classList.contains("staged"));
|
||||
assert.strictEqual(
|
||||
query(".topic-post.staged .cooked").innerText.trim(),
|
||||
|
@ -536,7 +535,7 @@ acceptance("Composer", function (needs) {
|
|||
await click("#reply-control button.create");
|
||||
|
||||
await visit("/t/internationalization-localization/280");
|
||||
assert.strictEqual(count(".topic-post.staged"), 0);
|
||||
assert.dom(".topic-post.staged").doesNotExist();
|
||||
});
|
||||
|
||||
test("Composer can switch between edits", async function (assert) {
|
||||
|
@ -601,11 +600,9 @@ acceptance("Composer", function (needs) {
|
|||
await menu.expand();
|
||||
await menu.selectRowByName("toggle-whisper");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-far-eye-slash"),
|
||||
1,
|
||||
"it sets the post type to whisper"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-eye-slash")
|
||||
.exists("sets the post type to whisper");
|
||||
|
||||
await menu.expand();
|
||||
await menu.selectRowByName("toggle-whisper");
|
||||
|
@ -631,78 +628,56 @@ acceptance("Composer", function (needs) {
|
|||
await visit("/t/this-is-a-test-topic/9");
|
||||
await click(".topic-post:nth-of-type(1) button.reply");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.open"),
|
||||
1,
|
||||
"it starts in open state by default"
|
||||
);
|
||||
assert.dom("#reply-control.open").exists("starts in open state by default");
|
||||
|
||||
await click(".toggle-fullscreen");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.fullscreen"),
|
||||
1,
|
||||
"it expands composer to full screen"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control.fullscreen")
|
||||
.exists("expands composer to full screen");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-fullscreen-prompt"),
|
||||
1,
|
||||
"the exit fullscreen prompt is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-fullscreen-prompt")
|
||||
.exists("the exit fullscreen prompt is visible");
|
||||
|
||||
await click(".toggle-fullscreen");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.open"),
|
||||
1,
|
||||
"it collapses composer to regular size"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control.open")
|
||||
.exists("collapses composer to regular size");
|
||||
|
||||
await fillIn(".d-editor-input", "This is a dirty reply");
|
||||
await click(".toggler");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.draft"),
|
||||
1,
|
||||
"it collapses composer to draft bar"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control.draft")
|
||||
.exists("collapses composer to draft bar");
|
||||
|
||||
await click(".toggle-fullscreen");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.open"),
|
||||
1,
|
||||
"from draft, it expands composer back to open state"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control.open")
|
||||
.exists("from draft, it expands composer back to open state");
|
||||
});
|
||||
|
||||
test("Composer fullscreen submit button", async function (assert) {
|
||||
await visit("/t/this-is-a-test-topic/9");
|
||||
await click(".topic-post:nth-of-type(1) button.reply");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.open"),
|
||||
1,
|
||||
"it starts in open state by default"
|
||||
);
|
||||
assert.dom("#reply-control.open").exists("starts in open state by default");
|
||||
|
||||
await click(".toggle-fullscreen");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control button.create"),
|
||||
1,
|
||||
"it shows composer submit button in fullscreen"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control button.create")
|
||||
.exists("shows composer submit button in fullscreen");
|
||||
|
||||
await fillIn(".d-editor-input", "too short");
|
||||
await click("#reply-control button.create");
|
||||
|
||||
assert.strictEqual(
|
||||
count("#reply-control.open"),
|
||||
1,
|
||||
"it goes back to open state if there's errors"
|
||||
);
|
||||
assert
|
||||
.dom("#reply-control.open")
|
||||
.exists("goes back to open state if there's errors");
|
||||
});
|
||||
|
||||
test("Composer can toggle between reply and createTopic", async function (assert) {
|
||||
|
@ -715,11 +690,9 @@ acceptance("Composer", function (needs) {
|
|||
"toggle-whisper"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".composer-actions svg.d-icon-far-eye-slash"),
|
||||
1,
|
||||
"it sets the post type to whisper"
|
||||
);
|
||||
assert
|
||||
.dom(".composer-actions svg.d-icon-far-eye-slash")
|
||||
.exists("sets the post type to whisper");
|
||||
|
||||
await visit("/");
|
||||
assert.dom("#create-topic").exists("the create topic button is visible");
|
||||
|
@ -943,11 +916,9 @@ acceptance("Composer", function (needs) {
|
|||
assert
|
||||
.dom(".save-or-cancel button.create")
|
||||
.hasText(I18n.t("composer.create_pm"), "reply button says Message");
|
||||
assert.strictEqual(
|
||||
count(".save-or-cancel button.create svg.d-icon-envelope"),
|
||||
1,
|
||||
"reply button has envelope icon"
|
||||
);
|
||||
assert
|
||||
.dom(".save-or-cancel button.create svg.d-icon-envelope")
|
||||
.exists("reply button has envelope icon");
|
||||
});
|
||||
|
||||
test("edit button when editing a post in a PM", async function (assert) {
|
||||
|
@ -958,11 +929,9 @@ acceptance("Composer", function (needs) {
|
|||
assert
|
||||
.dom(".save-or-cancel button.create")
|
||||
.hasText(I18n.t("composer.save_edit"), "save button says Save Edit");
|
||||
assert.strictEqual(
|
||||
count(".save-or-cancel button.create svg.d-icon-pencil"),
|
||||
1,
|
||||
"save button has pencil icon"
|
||||
);
|
||||
assert
|
||||
.dom(".save-or-cancel button.create svg.d-icon-pencil")
|
||||
.exists("save button has pencil icon");
|
||||
});
|
||||
|
||||
test("Shows duplicate_link notice", async function (assert) {
|
||||
|
@ -988,7 +957,7 @@ acceptance("Composer", function (needs) {
|
|||
assert.dom(".composer-popup").doesNotExist();
|
||||
|
||||
await fillIn(".d-editor-input", "[](https://github.com)");
|
||||
assert.strictEqual(count(".composer-popup"), 1);
|
||||
assert.dom(".composer-popup").exists();
|
||||
});
|
||||
|
||||
test("Shows the 'group_mentioned' notice", async function (assert) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { click, fillIn, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
||||
acceptance("Dashboard", function (needs) {
|
||||
|
@ -73,28 +73,24 @@ acceptance("Dashboard", function (needs) {
|
|||
await visit("/admin");
|
||||
await click(".dashboard .navigation-item.reports .navigation-link");
|
||||
|
||||
assert.strictEqual(count(".dashboard .admin-reports-list__report"), 1);
|
||||
assert.dom(".dashboard .admin-reports-list__report").exists({ count: 1 });
|
||||
|
||||
await fillIn(".dashboard .admin-reports-header__filter", "flags");
|
||||
|
||||
assert.strictEqual(count(".dashboard .admin-reports-list__report"), 0);
|
||||
assert.dom(".dashboard .admin-reports-list__report").doesNotExist();
|
||||
|
||||
await click(".dashboard .navigation-item.security .navigation-link");
|
||||
await click(".dashboard .navigation-item.reports .navigation-link");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".dashboard .admin-reports-list__report"),
|
||||
1,
|
||||
"navigating back and forth resets filter"
|
||||
);
|
||||
assert
|
||||
.dom(".dashboard .admin-reports-list__report")
|
||||
.exists({ count: 1 }, "navigating back and forth resets filter");
|
||||
|
||||
await fillIn(".dashboard .admin-reports-header__filter", "activities");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".dashboard .admin-reports-list__report"),
|
||||
1,
|
||||
"filter is case insensitive"
|
||||
);
|
||||
assert
|
||||
.dom(".dashboard .admin-reports-list__report")
|
||||
.exists({ count: 1 }, "filter is case insensitive");
|
||||
});
|
||||
|
||||
test("reports filters", async function (assert) {
|
||||
|
|
|
@ -3,7 +3,6 @@ import { test } from "qunit";
|
|||
import DoNotDisturb from "discourse/lib/do-not-disturb";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
queryAll,
|
||||
updateCurrentUser,
|
||||
|
@ -55,12 +54,9 @@ acceptance("Do not disturb", function (needs) {
|
|||
await click("#quick-access-profile .do-not-disturb .btn");
|
||||
|
||||
assert.dom(".do-not-disturb-modal").exists("DND modal is displayed");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".do-not-disturb-tile"),
|
||||
4,
|
||||
"There are 4 duration choices"
|
||||
);
|
||||
assert
|
||||
.dom(".do-not-disturb-tile")
|
||||
.exists({ count: 4 }, "there are 4 duration choices");
|
||||
|
||||
await triggerKeyEvent(
|
||||
".do-not-disturb-tile:nth-child(1)",
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
queryAll,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -116,11 +115,9 @@ 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.strictEqual(
|
||||
count('.section[data-section="recent"] .section-group img.emoji'),
|
||||
2,
|
||||
"it has multiple recent emojis"
|
||||
);
|
||||
assert
|
||||
.dom('.section[data-section="recent"] .section-group img.emoji')
|
||||
.exists({ count: 2 }, "has multiple recent emojis");
|
||||
|
||||
assert
|
||||
.dom(".section.recent .section-group img.emoji")
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, currentURL, settled, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
queryAll,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -13,11 +12,9 @@ acceptance("Group Members - Anonymous", function () {
|
|||
test("Viewing Members as anon user", async function (assert) {
|
||||
await visit("/g/discourse");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".avatar-flair .d-icon-circle-half-stroke"),
|
||||
1,
|
||||
"it displays the group's avatar flair"
|
||||
);
|
||||
assert
|
||||
.dom(".avatar-flair .d-icon-circle-half-stroke")
|
||||
.exists("displays the group's avatar flair");
|
||||
assert.dom(".group-members .group-member").exists("lists group members");
|
||||
|
||||
assert
|
||||
|
@ -49,11 +46,7 @@ acceptance("Group Members", function (needs) {
|
|||
await visit("/g/discourse");
|
||||
await click(".group-members-add");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".user-chooser"),
|
||||
1,
|
||||
"it should display the add members modal"
|
||||
);
|
||||
assert.dom(".user-chooser").exists("displays the add members modal");
|
||||
});
|
||||
|
||||
test("Viewing Members as an admin user", async function (assert) {
|
||||
|
|
|
@ -2,7 +2,6 @@ import { visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
|
@ -21,11 +20,9 @@ acceptance("Managing Group Category Notification Defaults", function (needs) {
|
|||
test("As an admin", async function (assert) {
|
||||
await visit("/g/discourse/manage/categories");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-notifications-form .category-selector"),
|
||||
5,
|
||||
"it should display category inputs"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-notifications-form .category-selector")
|
||||
.exists({ count: 5 }, "displays category inputs");
|
||||
});
|
||||
|
||||
test("As a group owner", async function (assert) {
|
||||
|
@ -33,10 +30,8 @@ acceptance("Managing Group Category Notification Defaults", function (needs) {
|
|||
|
||||
await visit("/g/discourse/manage/categories");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-notifications-form .category-selector"),
|
||||
5,
|
||||
"it should display category inputs"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-notifications-form .category-selector")
|
||||
.exists({ count: 5 }, "displays category inputs");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
@ -20,35 +19,25 @@ acceptance("Managing Group Interaction Settings", function (needs) {
|
|||
|
||||
await visit("/g/alternative-group/manage/interaction");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-visibility-level"),
|
||||
1,
|
||||
"it should display visibility level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-visibility-level")
|
||||
.exists("displays visibility level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-mentionable-level"),
|
||||
1,
|
||||
"it should display mentionable level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-mentionable-level")
|
||||
.exists("displays mentionable level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-messageable-level"),
|
||||
1,
|
||||
"it should display messageable level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-messageable-level")
|
||||
.exists("displays messageable level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-incoming-email"),
|
||||
1,
|
||||
"it should display incoming email input"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-incoming-email")
|
||||
.exists("displays incoming email input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-default-notification-level"),
|
||||
1,
|
||||
"it should display default notification level input"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-default-notification-level")
|
||||
.exists("displays default notification level input");
|
||||
});
|
||||
|
||||
test("As a group owner", async function (assert) {
|
||||
|
@ -60,35 +49,25 @@ acceptance("Managing Group Interaction Settings", function (needs) {
|
|||
|
||||
await visit("/g/discourse/manage/interaction");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-visibility-level"),
|
||||
0,
|
||||
"it should not display visibility level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-visibility-level")
|
||||
.doesNotExist("does not display visibility level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-mentionable-level"),
|
||||
1,
|
||||
"it should display mentionable level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-mentionable-level")
|
||||
.exists("displays mentionable level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-messageable-level"),
|
||||
1,
|
||||
"it should display messageable level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-messageable-level")
|
||||
.exists("displays messageable level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-incoming-email"),
|
||||
0,
|
||||
"it should not display incoming email input"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-incoming-email")
|
||||
.doesNotExist("does not display incoming email input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-default-notification-level"),
|
||||
1,
|
||||
"it should display default notification level input"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-default-notification-level")
|
||||
.exists("displays default notification level input");
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Group logs", function (needs) {
|
||||
needs.user();
|
||||
|
@ -99,17 +95,13 @@ acceptance("Group logs", function (needs) {
|
|||
|
||||
test("Browsing group logs", async function (assert) {
|
||||
await visit("/g/snorlax/manage/logs");
|
||||
assert.strictEqual(
|
||||
count("tr.group-manage-logs-row"),
|
||||
2,
|
||||
"it should display the right number of logs"
|
||||
);
|
||||
assert
|
||||
.dom("tr.group-manage-logs-row")
|
||||
.exists({ count: 2 }, "displays the right number of logs");
|
||||
|
||||
await click(query(".group-manage-logs-row button"));
|
||||
assert.strictEqual(
|
||||
count("tr.group-manage-logs-row"),
|
||||
1,
|
||||
"it should display the right number of logs"
|
||||
);
|
||||
assert
|
||||
.dom("tr.group-manage-logs-row")
|
||||
.exists({ count: 1 }, "displays the right number of logs");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -3,7 +3,6 @@ import { test } from "qunit";
|
|||
import Site from "discourse/models/site";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
@ -30,72 +29,50 @@ acceptance("Managing Group Membership", function (needs) {
|
|||
|
||||
await visit("/g/alternative-group/manage/membership");
|
||||
|
||||
assert.strictEqual(
|
||||
count('label[for="automatic_membership"]'),
|
||||
1,
|
||||
"it should display automatic membership label"
|
||||
);
|
||||
assert
|
||||
.dom('label[for="automatic_membership"]')
|
||||
.exists("displays automatic membership label");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-primary-group"),
|
||||
1,
|
||||
"it should display set as primary group checkbox"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-primary-group")
|
||||
.exists("displays set as primary group checkbox");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-form-grant-trust-level"),
|
||||
1,
|
||||
"it should display grant trust level selector"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-form-grant-trust-level")
|
||||
.exists("displays grant trust level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-public-admission"),
|
||||
1,
|
||||
"it should display group public admission input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-public-admission")
|
||||
.exists("displays group public admission input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-public-exit"),
|
||||
1,
|
||||
"it should display group public exit input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-public-exit")
|
||||
.exists("displays group public exit input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-allow-membership-requests"),
|
||||
1,
|
||||
"it should display group allow_membership_request input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-allow-membership-requests")
|
||||
.exists("displays group allow_membership_request input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-allow-membership-requests[disabled]"),
|
||||
1,
|
||||
"it should disable group allow_membership_request input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-allow-membership-requests")
|
||||
.isDisabled("disables group allow_membership_request input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-flair-inputs"),
|
||||
1,
|
||||
"it should display avatar flair inputs"
|
||||
);
|
||||
assert.dom(".group-flair-inputs").exists("displays avatar flair inputs");
|
||||
|
||||
await click(".group-form-public-admission");
|
||||
await click(".group-form-allow-membership-requests");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-public-admission[disabled]"),
|
||||
1,
|
||||
"it should disable group public admission input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-public-admission")
|
||||
.isDisabled("disables group public admission input");
|
||||
|
||||
assert
|
||||
.dom(".group-form-public-exit[disabled]")
|
||||
.doesNotExist("it should not disable group public exit input");
|
||||
.dom(".group-form-public-exit")
|
||||
.isNotDisabled("it should not disable group public exit input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-membership-request-template"),
|
||||
1,
|
||||
"it should display the membership request template field"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-membership-request-template")
|
||||
.exists("displays the membership request template field");
|
||||
|
||||
const emailDomains = selectKit(
|
||||
".group-form-automatic-membership-automatic"
|
||||
|
@ -170,28 +147,20 @@ acceptance("Managing Group Membership", function (needs) {
|
|||
.dom(".groups-form-grant-trust-level")
|
||||
.doesNotExist("it should not display grant trust level selector");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-public-admission"),
|
||||
1,
|
||||
"it should display group public admission input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-public-admission")
|
||||
.exists("displays group public admission input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-public-exit"),
|
||||
1,
|
||||
"it should display group public exit input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-public-exit")
|
||||
.exists("displays group public exit input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-allow-membership-requests"),
|
||||
1,
|
||||
"it should display group allow_membership_request input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-allow-membership-requests")
|
||||
.exists("displays group allow_membership_request input");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-allow-membership-requests[disabled]"),
|
||||
1,
|
||||
"it should disable group allow_membership_request input"
|
||||
);
|
||||
assert
|
||||
.dom(".group-form-allow-membership-requests")
|
||||
.isDisabled("disables group allow_membership_request input");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
|
@ -22,21 +21,11 @@ acceptance("Managing Group Profile", function (needs) {
|
|||
test("As an admin", async function (assert) {
|
||||
await visit("/g/discourse/manage/profile");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-bio"),
|
||||
1,
|
||||
"it should display group bio input"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".group-form-name"),
|
||||
1,
|
||||
"it should display group name input"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".group-form-full-name"),
|
||||
1,
|
||||
"it should display group full name input"
|
||||
);
|
||||
assert.dom(".group-form-bio").exists("displays group bio input");
|
||||
assert.dom(".group-form-name").exists("displays group name input");
|
||||
assert
|
||||
.dom(".group-form-full-name")
|
||||
.exists("displays group full name input");
|
||||
});
|
||||
|
||||
test("As a group owner", async function (assert) {
|
||||
|
|
|
@ -2,7 +2,6 @@ import { visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
|
@ -22,11 +21,9 @@ acceptance("Managing Group Tag Notification Defaults", function (needs) {
|
|||
test("As an admin", async function (assert) {
|
||||
await visit("/g/discourse/manage/tags");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-notifications-form .tag-chooser"),
|
||||
5,
|
||||
"it should display tag inputs"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-notifications-form .tag-chooser")
|
||||
.exists({ count: 5 }, "displays tag inputs");
|
||||
});
|
||||
|
||||
test("As a group owner", async function (assert) {
|
||||
|
@ -34,10 +31,8 @@ acceptance("Managing Group Tag Notification Defaults", function (needs) {
|
|||
|
||||
await visit("/g/discourse/manage/tags");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".groups-notifications-form .tag-chooser"),
|
||||
5,
|
||||
"it should display tag inputs"
|
||||
);
|
||||
assert
|
||||
.dom(".groups-notifications-form .tag-chooser")
|
||||
.exists({ count: 5 }, "displays tag inputs");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Group Requests", function (needs) {
|
||||
let requests;
|
||||
|
@ -89,7 +85,7 @@ acceptance("Group Requests", function (needs) {
|
|||
test("Group Requests", async function (assert) {
|
||||
await visit("/g/Macdonald/requests");
|
||||
|
||||
assert.strictEqual(count(".group-members .group-member"), 2);
|
||||
assert.dom(".group-members .group-member").exists({ count: 2 });
|
||||
assert.strictEqual(
|
||||
query(".group-members .directory-table__row:first-child .user-detail")
|
||||
.innerText.trim()
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, fillIn, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
|
@ -38,7 +34,7 @@ acceptance("Group - Anonymous", function (needs) {
|
|||
await click(".activity-nav li a[href='/g/discourse/activity/topics']");
|
||||
|
||||
assert.ok(query(".topic-list"), "it shows the topic list");
|
||||
assert.strictEqual(count(".topic-list-item"), 2, "it lists stream items");
|
||||
assert.dom(".topic-list-item").exists({ count: 2 }, "lists stream items");
|
||||
|
||||
await click(".activity-nav li a[href='/g/discourse/activity/mentions']");
|
||||
|
||||
|
@ -203,7 +199,7 @@ acceptance("Group - Authenticated", function (needs) {
|
|||
|
||||
await click(".group-message-button");
|
||||
|
||||
assert.strictEqual(count("#reply-control"), 1, "it opens the composer");
|
||||
assert.dom("#reply-control").exists("opens the composer");
|
||||
const privateMessageUsers = selectKit("#private-message-users");
|
||||
assert.strictEqual(
|
||||
privateMessageUsers.header().value(),
|
||||
|
@ -249,17 +245,13 @@ acceptance("Group - Authenticated", function (needs) {
|
|||
test("Admin Viewing Group", async function (assert) {
|
||||
await visit("/g/discourse");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".nav-pills li a[title='Manage']"),
|
||||
1,
|
||||
"it should show manage group tab if user is admin"
|
||||
);
|
||||
assert
|
||||
.dom(".nav-pills li a[title='Manage']")
|
||||
.exists("shows manage group tab if user is admin");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-message-button"),
|
||||
1,
|
||||
"it displays show group message button"
|
||||
);
|
||||
assert
|
||||
.dom(".group-message-button")
|
||||
.exists("displays show group message button");
|
||||
assert
|
||||
.dom(".group-info-name")
|
||||
.hasText("Awesome Team", "it should display the group name");
|
||||
|
@ -287,11 +279,9 @@ acceptance("Group - Authenticated", function (needs) {
|
|||
test("Moderator Viewing Group", async function (assert) {
|
||||
await visit("/g/alternative-group");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".nav-pills li a[title='Manage']"),
|
||||
1,
|
||||
"it should show manage group tab if user can_admin_group"
|
||||
);
|
||||
assert
|
||||
.dom(".nav-pills li a[title='Manage']")
|
||||
.exists("shows manage group tab if user can_admin_group");
|
||||
|
||||
await click(".group-members-add.btn");
|
||||
|
||||
|
|
|
@ -1,24 +1,18 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Groups", function () {
|
||||
test("Browsing Groups", async function (assert) {
|
||||
await visit("/g?username=eviltrout");
|
||||
assert.strictEqual(count(".group-box"), 1, "it displays user's groups");
|
||||
assert.dom(".group-box").exists({ count: 1 }, "displays user's groups");
|
||||
|
||||
await visit("/g");
|
||||
assert.strictEqual(count(".group-box"), 2, "it displays visible groups");
|
||||
assert.strictEqual(
|
||||
count(".group-index-join"),
|
||||
1,
|
||||
"it shows button to join group"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".group-index-request"),
|
||||
1,
|
||||
"it shows button to request for group membership"
|
||||
);
|
||||
assert.dom(".group-box").exists({ count: 2 }, "displays visible groups");
|
||||
assert.dom(".group-index-join").exists("shows button to join group");
|
||||
assert
|
||||
.dom(".group-index-request")
|
||||
.exists("shows button to request for group membership");
|
||||
|
||||
await click(".group-index-join");
|
||||
assert.dom(".modal.login-modal").exists("shows the login modal");
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, fillIn, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
acceptance("New Group - Anonymous", function () {
|
||||
|
@ -24,11 +20,7 @@ acceptance("New Group - Authenticated", function (needs) {
|
|||
await visit("/g");
|
||||
await click(".groups-header-new");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-save[disabled]"),
|
||||
1,
|
||||
"save button should be disabled"
|
||||
);
|
||||
assert.dom(".group-form-save").isDisabled("save button is disabled");
|
||||
|
||||
await fillIn("input[name='name']", "1");
|
||||
|
||||
|
@ -39,11 +31,7 @@ acceptance("New Group - Authenticated", function (needs) {
|
|||
"it should show the right validation tooltip"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".group-form-save:disabled"),
|
||||
1,
|
||||
"it should disable the save button"
|
||||
);
|
||||
assert.dom(".group-form-save").isDisabled("disables the save button");
|
||||
|
||||
await fillIn(
|
||||
"input[name='name']",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Pending posts - no existing pending posts", function (needs) {
|
||||
needs.user();
|
||||
|
@ -19,6 +19,6 @@ acceptance("Pending posts - existing pending posts", function (needs) {
|
|||
test("Navigate to pending posts", async function (assert) {
|
||||
await visit("/u/eviltrout");
|
||||
await click("[href='/u/eviltrout/activity/pending']");
|
||||
assert.strictEqual(count(".user-stream-item"), 2);
|
||||
assert.dom(".user-stream-item").exists({ count: 2 });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -3,7 +3,7 @@ import { test } from "qunit";
|
|||
import sinon from "sinon";
|
||||
import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Plugin Keyboard Shortcuts - Logged In", function (needs) {
|
||||
needs.user();
|
||||
|
@ -62,13 +62,16 @@ acceptance("Plugin Keyboard Shortcuts - Anonymous", function () {
|
|||
await triggerKeyEvent(document, "keypress", "?".charCodeAt(0));
|
||||
|
||||
assert.dom(".shortcut-category-new_category").exists();
|
||||
assert.strictEqual(count(".shortcut-category-new_category li"), 1);
|
||||
assert.dom(".shortcut-category-new_category li").exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("a plugin can add a shortcut to and existing category in the shortcut help modal", async function (assert) {
|
||||
await visit("/");
|
||||
await triggerKeyEvent(document, "keypress", "?".charCodeAt(0));
|
||||
const countBefore = count(".shortcut-category-application li");
|
||||
const countBefore = document.querySelectorAll(
|
||||
".shortcut-category-application li"
|
||||
).length;
|
||||
|
||||
await click(".modal-close");
|
||||
|
||||
withPluginApi("0.8.38", (api) => {
|
||||
|
@ -84,9 +87,8 @@ acceptance("Plugin Keyboard Shortcuts - Anonymous", function () {
|
|||
});
|
||||
|
||||
await triggerKeyEvent(document, "keypress", "?".charCodeAt(0));
|
||||
assert.strictEqual(
|
||||
count(".shortcut-category-application li"),
|
||||
countBefore + 1
|
||||
);
|
||||
assert
|
||||
.dom(".shortcut-category-application li")
|
||||
.exists({ count: countBefore + 1 });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { visit } from "@ember/test-helpers";
|
||||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { registerTemporaryModule } from "../helpers/temporary-module-helper";
|
||||
|
||||
const HELLO =
|
||||
|
@ -20,17 +20,12 @@ acceptance("Plugin Outlet - Multi Template", function (needs) {
|
|||
|
||||
test("Renders a template into the outlet", async function (assert) {
|
||||
await visit("/u/eviltrout");
|
||||
assert.strictEqual(
|
||||
count(".user-profile-primary-outlet.hello"),
|
||||
1,
|
||||
"it has class names"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".user-profile-primary-outlet.goodbye"),
|
||||
1,
|
||||
"it has class names"
|
||||
);
|
||||
assert.dom(".hello-span").hasText("Hello", "it renders into the outlet");
|
||||
assert.dom(".bye-span").hasText("Goodbye", "it renders into the outlet");
|
||||
assert.dom(".user-profile-primary-outlet").exists({ count: 2 });
|
||||
assert.dom(".user-profile-primary-outlet.hello").exists("has class names");
|
||||
assert
|
||||
.dom(".user-profile-primary-outlet.goodbye")
|
||||
.exists("has class names");
|
||||
assert.dom(".hello-span").hasText("Hello", "renders into the outlet");
|
||||
assert.dom(".bye-span").hasText("Goodbye", "renders into the outlet");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { visit } from "@ember/test-helpers";
|
||||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { registerTemporaryModule } from "../helpers/temporary-module-helper";
|
||||
|
||||
const CONNECTOR_MODULE =
|
||||
|
@ -17,11 +17,7 @@ acceptance("Plugin Outlet - Single Template", function (needs) {
|
|||
|
||||
test("Renders a template into the outlet", async function (assert) {
|
||||
await visit("/u/eviltrout");
|
||||
assert.strictEqual(
|
||||
count(".user-profile-primary-outlet.hello"),
|
||||
1,
|
||||
"it has class names"
|
||||
);
|
||||
assert.dom(".user-profile-primary-outlet").hasClass("hello");
|
||||
assert
|
||||
.dom(".hello-username")
|
||||
.hasText("eviltrout", "it renders into the outlet");
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Post - History", function (needs) {
|
||||
needs.user();
|
||||
|
@ -54,10 +50,10 @@ acceptance("Post - History", function (needs) {
|
|||
test("Shows highlighted tag changes", async function (assert) {
|
||||
await visit("/t/internationalization-localization/280");
|
||||
await click("article[data-post-id='419'] .edits button");
|
||||
assert.equal(count(".discourse-tag"), 4);
|
||||
assert.equal(count(".discourse-tag.diff-del"), 1);
|
||||
assert.dom(".discourse-tag").exists({ count: 4 });
|
||||
assert.dom(".discourse-tag.diff-del").exists({ count: 1 });
|
||||
assert.equal(query(".discourse-tag.diff-del").textContent, "tag1");
|
||||
assert.equal(count(".discourse-tag.diff-ins"), 1);
|
||||
assert.dom(".discourse-tag.diff-ins").exists({ count: 1 });
|
||||
assert.equal(query(".discourse-tag.diff-ins").textContent, "tag3");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Reports", function (needs) {
|
||||
needs.user();
|
||||
|
@ -12,7 +8,7 @@ acceptance("Reports", function (needs) {
|
|||
test("Visit reports page", async function (assert) {
|
||||
await visit("/admin/reports");
|
||||
|
||||
assert.strictEqual(count(".admin-reports-list__report"), 1);
|
||||
assert.dom(".admin-reports-list__report").exists({ count: 1 });
|
||||
|
||||
const report = query(".admin-reports-list__report:first-child");
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, fillIn, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
loggedInUser,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
|
@ -110,7 +109,9 @@ acceptance("Review", function (needs) {
|
|||
"<b>cooked content</b>"
|
||||
);
|
||||
|
||||
assert.strictEqual(count(".reviewable-flagged-post .reviewable-score"), 2);
|
||||
assert
|
||||
.dom(".reviewable-flagged-post .reviewable-score")
|
||||
.exists({ count: 2 });
|
||||
});
|
||||
|
||||
test("Flag related", async function (assert) {
|
||||
|
@ -221,10 +222,7 @@ acceptance("Review", function (needs) {
|
|||
|
||||
const reviewable = query(`[data-reviewable-id="1234"]`);
|
||||
assert.notOk(reviewable.className.includes("reviewable-stale"));
|
||||
assert.strictEqual(
|
||||
count(`[data-reviewable-id="1234"] .status .pending`),
|
||||
1
|
||||
);
|
||||
assert.dom("[data-reviewable-id='1234'] .status .pending").exists();
|
||||
assert.dom(".stale-help").doesNotExist();
|
||||
|
||||
await publishToMessageBus(`/reviewable_counts/${loggedInUser().id}`, {
|
||||
|
@ -235,13 +233,13 @@ acceptance("Review", function (needs) {
|
|||
});
|
||||
|
||||
assert.ok(reviewable.className.includes("reviewable-stale"));
|
||||
assert.strictEqual(count("[data-reviewable-id=1234] .status .approved"), 1);
|
||||
assert.strictEqual(count(".stale-help"), 1);
|
||||
assert.dom("[data-reviewable-id='1234'] .status .approved").exists();
|
||||
assert.dom(".stale-help").exists();
|
||||
assert.ok(query(".stale-help").innerText.includes("foo"));
|
||||
|
||||
await visit("/");
|
||||
await visit("/review"); // reload review
|
||||
|
||||
assert.strictEqual(count(".stale-help"), 0);
|
||||
assert.dom(".stale-help").doesNotExist();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, fillIn, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Search - Mobile", function (needs) {
|
||||
needs.mobileView();
|
||||
|
@ -31,7 +27,7 @@ acceptance("Search - Mobile", function (needs) {
|
|||
await fillIn(".search-query", "discourse");
|
||||
await click(".search-cta");
|
||||
|
||||
assert.strictEqual(count(".fps-topic"), 1, "has one post");
|
||||
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
|
||||
|
||||
assert
|
||||
.dom(".advanced-filters[open]")
|
||||
|
|
|
@ -12,7 +12,6 @@ import { withPluginApi } from "discourse/lib/plugin-api";
|
|||
import searchFixtures from "discourse/tests/fixtures/search-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
queryAll,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -286,7 +285,7 @@ acceptance("Search - Anonymous", function (needs) {
|
|||
await click("#search-button");
|
||||
await fillIn("#search-term", "@admin");
|
||||
|
||||
assert.strictEqual(count(".search-menu-assistant-item"), 2);
|
||||
assert.dom(".search-menu-assistant-item").exists({ count: 2 });
|
||||
assert.strictEqual(
|
||||
query(
|
||||
".search-menu-assistant-item:first-child .search-item-slug .label-suffix"
|
||||
|
@ -513,13 +512,13 @@ acceptance("Search - Authenticated", function (needs) {
|
|||
await triggerKeyEvent("#search-term", "keyup", "ArrowDown");
|
||||
await click(document.activeElement);
|
||||
|
||||
assert.notStrictEqual(count(".search-menu .results .item"), 0);
|
||||
assert.dom(".search-menu .results .item").exists();
|
||||
|
||||
await fillIn("#search-term", "plans empty");
|
||||
await triggerKeyEvent("#search-term", "keyup", 13);
|
||||
|
||||
assert.strictEqual(count(".search-menu .results .item"), 0);
|
||||
assert.strictEqual(count(".search-menu .results .no-results"), 1);
|
||||
assert.dom(".search-menu .results .item").doesNotExist();
|
||||
assert.dom(".search-menu .results .no-results").exists({ count: 1 });
|
||||
assert
|
||||
.dom(".search-menu .results .no-results")
|
||||
.hasText(I18n.t("search.no_results"));
|
||||
|
@ -1232,11 +1231,9 @@ acceptance("Search - assistant", function (needs) {
|
|||
await query("input#search-term").focus();
|
||||
await triggerKeyEvent("#search-term", "keyup", "Enter");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".search-menu .search-result-topic"),
|
||||
1,
|
||||
"it passes the PM search context to the search query"
|
||||
);
|
||||
assert
|
||||
.dom(".search-menu .search-result-topic")
|
||||
.exists({ count: 1 }, "passes the PM search context to the search query");
|
||||
});
|
||||
|
||||
test("topic results - updates search term when selecting a initial category option", async function (assert) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
||||
acceptance("Shared Drafts", function () {
|
||||
test("Viewing and publishing", async function (assert) {
|
||||
await visit("/t/some-topic/9");
|
||||
assert.strictEqual(count(".shared-draft-controls"), 1);
|
||||
assert.dom(".shared-draft-controls").exists();
|
||||
let categoryChooser = selectKit(".shared-draft-controls .category-chooser");
|
||||
assert.strictEqual(categoryChooser.header().value(), "3");
|
||||
|
||||
|
@ -18,7 +18,7 @@ acceptance("Shared Drafts", function () {
|
|||
|
||||
test("Updating category", async function (assert) {
|
||||
await visit("/t/some-topic/9");
|
||||
assert.strictEqual(count(".shared-draft-controls"), 1);
|
||||
assert.dom(".shared-draft-controls").exists();
|
||||
|
||||
await click(".edit-topic");
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import categoryFixture from "discourse/tests/fixtures/category-fixtures";
|
|||
import discoveryFixture from "discourse/tests/fixtures/discovery-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
queryAll,
|
||||
|
@ -40,11 +39,12 @@ acceptance(
|
|||
|
||||
await visit("/");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link:not(.sidebar-section-link[data-link-name='all-categories'])"
|
||||
),
|
||||
1,
|
||||
)
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"there should only be one section link under the section"
|
||||
);
|
||||
|
||||
|
@ -416,11 +416,12 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit("/");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link:not(.sidebar-section-link[data-link-name='all-categories'])"
|
||||
),
|
||||
4,
|
||||
)
|
||||
.exists(
|
||||
{ count: 4 },
|
||||
"there should only be 4 section link under the section"
|
||||
);
|
||||
|
||||
|
@ -450,13 +451,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
"it should transition to the category1 page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -474,13 +473,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
"it should transition to the category2's page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -523,13 +520,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
"it should transition to the category1 default view page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -568,13 +563,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
"it should transition to the category1 new page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -621,13 +614,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
"it should transition to the category1 unread page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -677,13 +668,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit(`/c/${category1.slug}/${category1.id}/l/new`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -699,13 +688,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit(`/c/${category1.slug}/${category1.id}/l/unread`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -721,13 +708,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit(`/c/${category1.slug}/${category1.id}/l/top`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -743,13 +728,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit(`/c/${category1.slug}/${category1.id}/none`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -765,13 +748,11 @@ acceptance("Sidebar - Logged on user - Categories Section", function (needs) {
|
|||
|
||||
await visit(`/c/${category1.slug}/${category1.id}/all`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='categories'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
|
|
@ -10,7 +10,6 @@ import { withPluginApi } from "discourse/lib/plugin-api";
|
|||
import topicFixtures from "discourse/tests/fixtures/discovery-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
loggedInUser,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
|
@ -111,13 +110,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the latest page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -143,13 +140,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the latest page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -185,13 +180,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the new page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -235,13 +228,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the unread page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -275,13 +266,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the users url"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -381,13 +370,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the groups url"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -525,13 +512,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"should transition to the user's activity url"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -567,13 +552,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
"transitions to the user's activity drafts url"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -674,13 +657,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
test("visiting top route", async function (assert) {
|
||||
await visit("/top");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -692,13 +673,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
test("visiting unread route", async function (assert) {
|
||||
await visit("/unread");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
@ -710,13 +689,11 @@ acceptance("Sidebar - Logged on user - Community Section", function (needs) {
|
|||
test("visiting new route", async function (assert) {
|
||||
await visit("/new");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='community'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(
|
||||
|
|
|
@ -3,7 +3,6 @@ import { test } from "qunit";
|
|||
import { NotificationLevels } from "discourse/lib/notification-levels";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
queryAll,
|
||||
|
@ -101,13 +100,11 @@ acceptance(
|
|||
)
|
||||
.exists("displays the personal message inbox link");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link"
|
||||
),
|
||||
1,
|
||||
"only displays the personal message inbox link"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only displays the personal message inbox link");
|
||||
|
||||
await click(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link[data-link-name='personal-messages-inbox']"
|
||||
|
@ -119,11 +116,12 @@ acceptance(
|
|||
)
|
||||
.exists("personal message inbox link is marked as active");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link"
|
||||
),
|
||||
5,
|
||||
)
|
||||
.exists(
|
||||
{ count: 5 },
|
||||
"expands and displays the links for personal messages"
|
||||
);
|
||||
});
|
||||
|
@ -146,11 +144,12 @@ acceptance(
|
|||
`it should transition to user's ${type} personal messages`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.active"
|
||||
),
|
||||
2,
|
||||
)
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"only two links are marked as active in the sidebar"
|
||||
);
|
||||
|
||||
|
@ -210,41 +209,36 @@ acceptance(
|
|||
|
||||
await visit("/u/eviltrout/messages/group/GrOuP1");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link"
|
||||
),
|
||||
6,
|
||||
)
|
||||
.exists(
|
||||
{ count: 6 },
|
||||
"expands and displays the links for group1 group messages"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.group1"
|
||||
),
|
||||
4,
|
||||
"expands the links for group1 group messages"
|
||||
);
|
||||
)
|
||||
.exists({ count: 4 }, "expands the links for group1 group messages");
|
||||
|
||||
await click(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link[data-link-name='group-messages-inbox'].group3"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.group1"
|
||||
),
|
||||
1,
|
||||
"collapses the links for group1 group messages"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "collapses the links for group1 group messages");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.group3"
|
||||
),
|
||||
4,
|
||||
"expands the links for group3 group messages"
|
||||
);
|
||||
)
|
||||
.exists({ count: 4 }, "expands the links for group3 group messages");
|
||||
});
|
||||
|
||||
["new", "archive", "unread"].forEach((type) => {
|
||||
|
@ -282,11 +276,12 @@ acceptance(
|
|||
`it should transition to user's ${type} personal messages`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.active"
|
||||
),
|
||||
2,
|
||||
)
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"only two links are marked as active in the sidebar"
|
||||
);
|
||||
|
||||
|
@ -316,27 +311,27 @@ acceptance(
|
|||
|
||||
await visit("/t/130");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link"
|
||||
),
|
||||
5,
|
||||
"5 section links are displayed"
|
||||
);
|
||||
)
|
||||
.exists({ count: 5 }, "5 section links are displayed");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.personal-messages"
|
||||
),
|
||||
1,
|
||||
)
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"personal messages inbox filter links are not shown"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.foo_group"
|
||||
),
|
||||
4,
|
||||
)
|
||||
.exists(
|
||||
{ count: 4 },
|
||||
"foo_group messages inbox filter links are shown"
|
||||
);
|
||||
});
|
||||
|
@ -353,27 +348,24 @@ acceptance(
|
|||
|
||||
await visit("/t/34");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link"
|
||||
),
|
||||
6,
|
||||
"6 section links are displayed"
|
||||
);
|
||||
)
|
||||
.exists({ count: 6 }, "6 section links are displayed");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.personal-messages"
|
||||
),
|
||||
5,
|
||||
"personal messages inbox filter links are shown"
|
||||
);
|
||||
)
|
||||
.exists({ count: 5 }, "personal messages inbox filter links are shown");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='messages'] .sidebar-section-link.foo_group"
|
||||
),
|
||||
1,
|
||||
)
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"foo_group messages inbox filter links are not shown"
|
||||
);
|
||||
});
|
||||
|
|
|
@ -4,7 +4,6 @@ import { NotificationLevels } from "discourse/lib/notification-levels";
|
|||
import discoveryFixture from "discourse/tests/fixtures/discovery-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
updateCurrentUser,
|
||||
|
@ -71,13 +70,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
test("tag section links for user", async function (assert) {
|
||||
await visit("/");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link:not(.sidebar-section-link[data-link-name='all-tags'])"
|
||||
),
|
||||
4,
|
||||
"4 section links under the section"
|
||||
);
|
||||
)
|
||||
.exists({ count: 4 }, "4 section links under the section");
|
||||
|
||||
assert.strictEqual(
|
||||
query(
|
||||
|
@ -111,13 +108,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to tag1's topics discovery page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag1] a.active`)
|
||||
|
@ -131,13 +126,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to tag2's topics discovery page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag2] a.active`)
|
||||
|
@ -160,13 +153,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to tag1's topics discovery page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag1] a.active`)
|
||||
|
@ -203,13 +194,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to tag1's topics new page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag1] a.active`)
|
||||
|
@ -246,13 +235,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to tag1's topics unread page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag1] a.active`)
|
||||
|
@ -270,13 +257,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
"it should transition to user's private message tag4 tag page"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(`.sidebar-section-link-wrapper[data-tag-name=tag4] a.active`)
|
||||
|
@ -286,13 +271,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
test("visiting tag discovery top route", async function (assert) {
|
||||
await visit(`/tag/tag1/l/top`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(".sidebar-section-link-wrapper[data-tag-name=tag1] a.active")
|
||||
|
@ -302,13 +285,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
test("visiting tag discovery new ", async function (assert) {
|
||||
await visit(`/tag/tag1/l/new`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(".sidebar-section-link-wrapper[data-tag-name=tag1] a.active")
|
||||
|
@ -318,13 +299,11 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
|
|||
test("visiting tag discovery unread route", async function (assert) {
|
||||
await visit(`/tag/tag1/l/unread`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".sidebar-section[data-section-name='tags'] .sidebar-section-link.active"
|
||||
),
|
||||
1,
|
||||
"only one link is marked as active"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "only one link is marked as active");
|
||||
|
||||
assert
|
||||
.dom(".sidebar-section-link-wrapper[data-tag-name=tag1] a.active")
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
queryAll,
|
||||
updateCurrentUser,
|
||||
|
@ -193,9 +192,10 @@ acceptance("Tags listed by group", function (needs) {
|
|||
test("list the tags in groups", async function (assert) {
|
||||
await visit("/tags");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".tag-list"),
|
||||
4,
|
||||
assert
|
||||
.dom(".tag-list")
|
||||
.exists(
|
||||
{ count: 4 },
|
||||
"shows separate lists for the 3 groups and the ungrouped tags"
|
||||
);
|
||||
assert.deepEqual(
|
||||
|
@ -238,7 +238,7 @@ acceptance("Tags listed by group", function (needs) {
|
|||
assert.dom("#create-topic:disabled").doesNotExist();
|
||||
|
||||
await visit("/tag/staff-only-tag");
|
||||
assert.strictEqual(count("#create-topic:disabled"), 1);
|
||||
assert.dom("#create-topic").isDisabled();
|
||||
|
||||
updateCurrentUser({ moderator: true });
|
||||
|
||||
|
@ -429,7 +429,7 @@ acceptance("Tag info", function (needs) {
|
|||
updateCurrentUser({ moderator: false, admin: false });
|
||||
|
||||
await visit("/tag/planters");
|
||||
assert.strictEqual(count("#show-tag-info"), 1);
|
||||
assert.dom("#show-tag-info").exists();
|
||||
|
||||
await click("#show-tag-info");
|
||||
assert.dom(".tag-info .tag-name").exists("show tag");
|
||||
|
@ -437,16 +437,10 @@ acceptance("Tag info", function (needs) {
|
|||
query(".tag-info .tag-associations").innerText.includes("Gardening"),
|
||||
"show tag group names"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".tag-info .synonyms-list .tag-box"),
|
||||
2,
|
||||
"shows the synonyms"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".tag-info .badge-category"),
|
||||
1,
|
||||
"show the category"
|
||||
);
|
||||
assert
|
||||
.dom(".tag-info .synonyms-list .tag-box")
|
||||
.exists({ count: 2 }, "shows the synonyms");
|
||||
assert.dom(".tag-info .badge-category").exists("show the category");
|
||||
assert.dom("#rename-tag").doesNotExist("can't rename tag");
|
||||
assert.dom("#edit-synonyms").doesNotExist("can't edit synonyms");
|
||||
assert.dom("#delete-tag").doesNotExist("can't delete tag");
|
||||
|
@ -456,7 +450,7 @@ acceptance("Tag info", function (needs) {
|
|||
updateCurrentUser({ moderator: false, admin: true });
|
||||
|
||||
await visit("/tag/happy-monkey");
|
||||
assert.strictEqual(count("#show-tag-info"), 1);
|
||||
assert.dom("#show-tag-info").exists();
|
||||
|
||||
await click("#show-tag-info");
|
||||
assert.dom(".tag-info .tag-name").exists("show tag");
|
||||
|
@ -478,7 +472,7 @@ acceptance("Tag info", function (needs) {
|
|||
updateCurrentUser({ moderator: false, admin: true });
|
||||
|
||||
await visit("/tag/happy-monkey");
|
||||
assert.strictEqual(count("#show-tag-info"), 1);
|
||||
assert.dom("#show-tag-info").exists();
|
||||
|
||||
await click("#show-tag-info");
|
||||
assert.dom(".tag-info .tag-name").exists("show tag");
|
||||
|
@ -595,7 +589,7 @@ acceptance("Tag info", function (needs) {
|
|||
updateCurrentUser({ moderator: false, admin: true });
|
||||
|
||||
await visit("/tag/planters");
|
||||
assert.strictEqual(count("#show-tag-info"), 1);
|
||||
assert.dom("#show-tag-info").exists();
|
||||
|
||||
await click("#show-tag-info");
|
||||
assert.dom(".edit-tag").exists("can rename tag");
|
||||
|
@ -603,23 +597,17 @@ acceptance("Tag info", function (needs) {
|
|||
assert.dom("#delete-tag").exists("can delete tag");
|
||||
|
||||
await click("#edit-synonyms");
|
||||
assert.strictEqual(
|
||||
count(".unlink-synonym:visible"),
|
||||
2,
|
||||
"unlink UI is visible"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".delete-synonym:visible"),
|
||||
2,
|
||||
"delete UI is visible"
|
||||
);
|
||||
assert
|
||||
.dom(".unlink-synonym")
|
||||
.isVisible({ count: 2 }, "unlink UI is visible");
|
||||
assert
|
||||
.dom(".delete-synonym")
|
||||
.isVisible({ count: 2 }, "delete UI is visible");
|
||||
|
||||
await click(".unlink-synonym:nth-of-type(1)");
|
||||
assert.strictEqual(
|
||||
count(".tag-info .synonyms-list .tag-box"),
|
||||
1,
|
||||
"removed a synonym"
|
||||
);
|
||||
assert
|
||||
.dom(".tag-info .synonyms-list .tag-box")
|
||||
.exists({ count: 1 }, "removed a synonym");
|
||||
});
|
||||
|
||||
test("composer will not set tags if user cannot create them", async function (assert) {
|
||||
|
|
|
@ -12,7 +12,6 @@ import topicFixtures from "discourse/tests/fixtures/topic";
|
|||
import {
|
||||
acceptance,
|
||||
chromeTest,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
selectText,
|
||||
|
@ -141,7 +140,7 @@ acceptance("Topic", function (needs) {
|
|||
await click(".topic-post:nth-of-type(1) button.show-post-admin-menu");
|
||||
await click(".btn.wiki");
|
||||
|
||||
assert.strictEqual(count("button.wiki"), 1, "it shows the wiki icon");
|
||||
assert.dom("button.wiki").exists("shows the wiki icon");
|
||||
});
|
||||
|
||||
test("Visit topic routes", async function (assert) {
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
queryAll,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
|
@ -34,19 +30,15 @@ acceptance("Bookmark - Bulk Actions", function (needs) {
|
|||
|
||||
await click("button.bulk-clear-all");
|
||||
|
||||
assert.strictEqual(
|
||||
count("input.bulk-select:checked"),
|
||||
0,
|
||||
"Clear all should clear all selection"
|
||||
);
|
||||
assert
|
||||
.dom("input.bulk-select:checked")
|
||||
.doesNotExist("Clear all should clear all selection");
|
||||
|
||||
await click("button.bulk-select-all");
|
||||
|
||||
assert.strictEqual(
|
||||
count("input.bulk-select:checked"),
|
||||
2,
|
||||
"Select all should select all topics"
|
||||
);
|
||||
assert
|
||||
.dom("input.bulk-select:checked")
|
||||
.exists({ count: 2 }, "Select all should select all topics");
|
||||
|
||||
await dropdown.expand();
|
||||
await dropdown.selectRowByValue("delete-bookmarks");
|
||||
|
|
|
@ -3,7 +3,6 @@ import { IMAGE_VERSION } from "pretty-text/emoji/version";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
normalizeHtml,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -13,17 +12,15 @@ acceptance("User Drafts", function (needs) {
|
|||
|
||||
test("Stream", async function (assert) {
|
||||
await visit("/u/eviltrout/activity/drafts");
|
||||
assert.strictEqual(count(".user-stream-item"), 3, "has drafts");
|
||||
assert.dom(".user-stream-item").exists({ count: 3 }, "has drafts");
|
||||
|
||||
await click(".user-stream-item:first-child .remove-draft");
|
||||
assert.dom(".dialog-body").exists();
|
||||
|
||||
await click(".dialog-footer .btn-primary");
|
||||
assert.strictEqual(
|
||||
count(".user-stream-item"),
|
||||
2,
|
||||
"draft removed, list length diminished by one"
|
||||
);
|
||||
assert
|
||||
.dom(".user-stream-item")
|
||||
.exists({ count: 2 }, "draft removed, list length diminished by one");
|
||||
|
||||
await visit("/");
|
||||
assert.dom("#create-topic").exists();
|
||||
|
|
|
@ -4,11 +4,7 @@ import cookie, { removeCookie } from "discourse/lib/cookie";
|
|||
import Session from "discourse/models/session";
|
||||
import Site from "discourse/models/site";
|
||||
import userFixtures from "discourse/tests/fixtures/user-fixtures";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
|
@ -135,10 +131,9 @@ acceptance("User Preferences - Interface", function (needs) {
|
|||
assert.strictEqual(selectKit(".theme .select-kit").header().value(), "2");
|
||||
|
||||
await selectKit(".light-color-scheme .select-kit").expand();
|
||||
assert.strictEqual(
|
||||
count(".light-color-scheme .select-kit .select-kit-row"),
|
||||
2
|
||||
);
|
||||
assert
|
||||
.dom(".light-color-scheme .select-kit .select-kit-row")
|
||||
.exists({ count: 2 });
|
||||
|
||||
document.querySelector("meta[name='discourse_theme_id']").remove();
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
fakeTime,
|
||||
loggedInUser,
|
||||
queryAll,
|
||||
|
@ -78,11 +77,9 @@ acceptance("User notification schedule", function (needs) {
|
|||
"None",
|
||||
"set monday label to none"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".day.Monday .select-kit.single-select"),
|
||||
1,
|
||||
"The end time input is hidden"
|
||||
);
|
||||
assert
|
||||
.dom(".day.Monday .select-kit.single-select")
|
||||
.exists({ count: 1 }, "the end time input is hidden");
|
||||
});
|
||||
|
||||
test("If start time is after end time, end time gets bumped 30 minutes past start time", async function (assert) {
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
updateCurrentUser,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -43,25 +42,21 @@ acceptance("User Preferences - Security", function (needs) {
|
|||
I18n.t("user.auth_tokens.show_all", { count: 3 }),
|
||||
"it should display two tokens"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".pref-auth-tokens .auth-token"),
|
||||
2,
|
||||
"it should display two tokens"
|
||||
);
|
||||
assert
|
||||
.dom(".pref-auth-tokens .auth-token")
|
||||
.exists({ count: 2 }, "displays two tokens");
|
||||
|
||||
await click(".pref-auth-tokens > a:nth-of-type(1)");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".pref-auth-tokens .auth-token"),
|
||||
3,
|
||||
"it should display three tokens"
|
||||
);
|
||||
assert
|
||||
.dom(".pref-auth-tokens .auth-token")
|
||||
.exists({ count: 3 }, "displays three tokens");
|
||||
|
||||
const authTokenDropdown = selectKit(".auth-token-dropdown");
|
||||
await authTokenDropdown.expand();
|
||||
await authTokenDropdown.selectRowByValue("notYou");
|
||||
|
||||
assert.strictEqual(count(".d-modal:visible"), 1, "modal should appear");
|
||||
assert.dom(".d-modal").exists("modal appears");
|
||||
});
|
||||
|
||||
test("Viewing user api keys", async function (assert) {
|
||||
|
|
|
@ -10,7 +10,6 @@ import {
|
|||
import { fixturesByUrl } from "discourse/tests/helpers/create-pretender";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
updateCurrentUser,
|
||||
|
@ -31,11 +30,7 @@ acceptance(
|
|||
test("viewing messages", async function (assert) {
|
||||
await visit("/u/eviltrout/messages");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
1,
|
||||
"displays the topic list"
|
||||
);
|
||||
assert.dom(".topic-list-item").exists("displays the topic list");
|
||||
|
||||
assert
|
||||
.dom(".group-notifications-button")
|
||||
|
@ -469,11 +464,9 @@ acceptance(
|
|||
await publishUnreadToMessageBus({ topicId: 2, userId: 5 });
|
||||
await publishUnreadToMessageBus({ topicId: 3, userId: 5 });
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
await click("#dismiss-read-confirm");
|
||||
|
@ -484,49 +477,39 @@ acceptance(
|
|||
"displays the right count"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("dismissing personal unread messages", async function (assert) {
|
||||
await visit("/u/charlie/messages/unread");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
await click("#dismiss-read-confirm");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("dismissing group unread messages", async function (assert) {
|
||||
await visit("/u/charlie/messages/group/awesome_group/unread");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
await click("#dismiss-read-confirm");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("dismissing new messages", async function (assert) {
|
||||
|
@ -536,11 +519,9 @@ acceptance(
|
|||
await publishNewToMessageBus({ topicId: 2, userId: 5 });
|
||||
await publishNewToMessageBus({ topicId: 3, userId: 5 });
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
|
||||
|
@ -550,47 +531,37 @@ acceptance(
|
|||
"displays the right count"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("dismissing personal new messages", async function (assert) {
|
||||
await visit("/u/charlie/messages/new");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("dismissing new group messages", async function (assert) {
|
||||
await visit("/u/charlie/messages/group/awesome_group/new");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
await click(".btn.dismiss-read");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
0,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.doesNotExist("displays the right topic list");
|
||||
});
|
||||
|
||||
test("viewing messages when highest read cache has been set for a topic", async function (assert) {
|
||||
|
@ -612,11 +583,9 @@ acceptance(
|
|||
test("viewing messages", async function (assert) {
|
||||
await visit("/u/charlie/messages");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
3,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 3 }, "displays the right topic list");
|
||||
|
||||
assert.strictEqual(
|
||||
query(`tr[data-topic-id="1"] .topic-post-badges`).textContent.trim(),
|
||||
|
@ -626,11 +595,9 @@ acceptance(
|
|||
|
||||
await visit("/u/charlie/messages/group/awesome_group");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".topic-list-item"),
|
||||
2,
|
||||
"displays the right topic list"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-list-item")
|
||||
.exists({ count: 2 }, "displays the right topic list");
|
||||
|
||||
assert
|
||||
.dom(".group-notifications-button")
|
||||
|
|
|
@ -2,7 +2,7 @@ import { click, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | d-navigation", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -23,11 +23,9 @@ module("Integration | Component | d-navigation", function (hooks) {
|
|||
await render(hbs`<DNavigation @filterMode="categories" />`);
|
||||
await click(".category-drop .select-kit-header-wrapper");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".category-row"),
|
||||
1,
|
||||
"displays only categories that are not muted"
|
||||
);
|
||||
assert
|
||||
.dom(".category-row")
|
||||
.exists({ count: 1 }, "displays only categories that are not muted");
|
||||
assert.strictEqual(
|
||||
query(".category-row .badge-category span").textContent.trim(),
|
||||
"dev"
|
||||
|
|
|
@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | group-membership-button", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -40,11 +39,7 @@ module("Integration | Component | group-membership-button", function (hooks) {
|
|||
.doesNotExist("can't leave group if user is not in the group");
|
||||
|
||||
this.set("model.is_group_user", true);
|
||||
assert.strictEqual(
|
||||
count(".group-index-leave"),
|
||||
1,
|
||||
"allowed to leave group"
|
||||
);
|
||||
assert.dom(".group-index-leave").exists("allowed to leave group");
|
||||
});
|
||||
|
||||
test("canRequestMembership", async function (assert) {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { render } from "@ember/test-helpers";
|
|||
import { module, test } from "qunit";
|
||||
import LightDarkImg from "discourse/components/light-dark-img";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
const lightSrc = { url: "/images/light.jpg", width: 376, height: 500 };
|
||||
const darkSrc = { url: "/images/light.jpg", width: 432, height: 298 };
|
||||
|
@ -35,7 +35,7 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
await render(<template><LightDarkImg @lightImg={{lightSrc}} /></template>);
|
||||
|
||||
assert.dom("picture").doesNotExist("there is no picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
|
@ -53,7 +53,7 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
</template>);
|
||||
|
||||
assert.dom("picture").doesNotExist("there is no picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
|
@ -80,7 +80,7 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
await render(<template><LightDarkImg @lightImg={{lightSrc}} /></template>);
|
||||
|
||||
assert.dom("picture").doesNotExist("there is no picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
|
@ -97,14 +97,14 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
<LightDarkImg @lightImg={{lightSrc}} @darkImg={{darkSrc}} />
|
||||
</template>);
|
||||
|
||||
assert.strictEqual(count("picture"), 1, "there is a picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("picture").exists("there is a picture tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
"the img src is the light image"
|
||||
);
|
||||
assert.strictEqual(count("source"), 1, "there is a source tag");
|
||||
assert.dom("source").exists("there is a source tag");
|
||||
assert.strictEqual(
|
||||
query("source").getAttribute("srcset"),
|
||||
darkSrc.url,
|
||||
|
@ -130,7 +130,7 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
await render(<template><LightDarkImg @lightImg={{lightSrc}} /></template>);
|
||||
|
||||
assert.dom("picture").doesNotExist("there is no picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
|
@ -147,14 +147,14 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
<LightDarkImg @lightImg={{lightSrc}} @darkImg={{darkSrc}} />
|
||||
</template>);
|
||||
|
||||
assert.strictEqual(count("picture"), 1, "there is a picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("picture").exists("there is a picture tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
darkSrc.url,
|
||||
"the img src is the dark image"
|
||||
);
|
||||
assert.strictEqual(count("source"), 1, "there is a source tag");
|
||||
assert.dom("source").exists("there is a source tag");
|
||||
assert.strictEqual(
|
||||
query("source").getAttribute("srcset"),
|
||||
darkSrc.url,
|
||||
|
@ -180,7 +180,7 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
await render(<template><LightDarkImg @lightImg={{lightSrc}} /></template>);
|
||||
|
||||
assert.dom("picture").doesNotExist("there is no picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
lightSrc.url,
|
||||
|
@ -197,14 +197,14 @@ module("Integration | Component | light-dark-img", function (hooks) {
|
|||
<LightDarkImg @lightImg={{lightSrc}} @darkImg={{darkSrc}} />
|
||||
</template>);
|
||||
|
||||
assert.strictEqual(count("picture"), 1, "there is a picture tag");
|
||||
assert.strictEqual(count("img"), 1, "there is an img tag");
|
||||
assert.dom("picture").exists("there is a picture tag");
|
||||
assert.dom("img").exists("there is an img tag");
|
||||
assert.strictEqual(
|
||||
query("img").getAttribute("src"),
|
||||
darkSrc.url,
|
||||
"the img src is the dark image"
|
||||
);
|
||||
assert.strictEqual(count("source"), 1, "there is a source tag");
|
||||
assert.dom("source").exists("there is a source tag");
|
||||
assert.strictEqual(
|
||||
query("source").getAttribute("srcset"),
|
||||
darkSrc.url,
|
||||
|
|
|
@ -2,7 +2,7 @@ import { blur, click, fillIn, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
module("Integration | Component | secret-value-list", function (hooks) {
|
||||
|
@ -23,31 +23,31 @@ module("Integration | Component | secret-value-list", function (hooks) {
|
|||
await fillIn(".new-value-input.key", "thirdKey");
|
||||
await click(".add-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
2,
|
||||
"it doesn't add the value to the list if secret is missing"
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"doesn't add the value to the list if secret is missing"
|
||||
);
|
||||
|
||||
await fillIn(".new-value-input.key", "");
|
||||
await fillIn(".new-value-input.secret", "thirdValue");
|
||||
await click(".add-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
2,
|
||||
"it doesn't add the value to the list if key is missing"
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"doesn't add the value to the list if key is missing"
|
||||
);
|
||||
|
||||
await fillIn(".new-value-input.key", "thirdKey");
|
||||
await fillIn(".new-value-input.secret", "thirdValue");
|
||||
await click(".add-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.deepEqual(
|
||||
this.values,
|
||||
|
@ -144,11 +144,9 @@ module("Integration | Component | secret-value-list", function (hooks) {
|
|||
|
||||
await click(".values .value[data-index='0'] .remove-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
1,
|
||||
"it removes the value from the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 1 }, "removes the value from the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
this.values,
|
||||
|
|
|
@ -8,7 +8,7 @@ import {
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | simple-list", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -25,11 +25,9 @@ module("Integration | Component | simple-list", function (hooks) {
|
|||
await fillIn(".add-value-input", "penar");
|
||||
await click(".add-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
query(".values .value[data-index='2'] .value-input").value,
|
||||
|
@ -40,11 +38,9 @@ module("Integration | Component | simple-list", function (hooks) {
|
|||
await fillIn(".add-value-input", "eviltrout");
|
||||
await triggerKeyEvent(".add-value-input", "keydown", "Enter");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
4,
|
||||
"it adds the value when keying Enter"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 4 }, "adds the value when keying Enter");
|
||||
});
|
||||
|
||||
test("adding a value when list is predefined", async function (assert) {
|
||||
|
@ -56,14 +52,12 @@ module("Integration | Component | simple-list", function (hooks) {
|
|||
);
|
||||
|
||||
await click(".add-value-input summary");
|
||||
assert.strictEqual(count(".select-kit-row"), 1);
|
||||
assert.dom(".select-kit-row").exists({ count: 1 });
|
||||
await click(".select-kit-row");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
});
|
||||
|
||||
test("changing a value", async function (assert) {
|
||||
|
@ -95,11 +89,9 @@ module("Integration | Component | simple-list", function (hooks) {
|
|||
|
||||
await click(".values .value[data-index='0'] .remove-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
1,
|
||||
"it removes the value from the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 1 }, "removes the value from the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
query(".values .value[data-index='0'] .value-input").value,
|
||||
|
@ -118,11 +110,9 @@ module("Integration | Component | simple-list", function (hooks) {
|
|||
await fillIn(".add-value-input", "eviltrout");
|
||||
await click(".add-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
query(".values .value[data-index='2'] .value-input").value,
|
||||
|
|
|
@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | slow-mode-info", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -28,7 +27,7 @@ module("Integration | Component | slow-mode-info", function (hooks) {
|
|||
|
||||
await render(hbs`<SlowModeInfo @topic={{this.topic}} />`);
|
||||
|
||||
assert.strictEqual(count(".slow-mode-heading"), 1);
|
||||
assert.dom(".slow-mode-heading").exists();
|
||||
});
|
||||
|
||||
test("staff and TL4 users can disable slow mode", async function (assert) {
|
||||
|
@ -41,7 +40,7 @@ module("Integration | Component | slow-mode-info", function (hooks) {
|
|||
hbs`<SlowModeInfo @topic={{this.topic}} @user={{this.user}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(count(".slow-mode-remove"), 1);
|
||||
assert.dom(".slow-mode-remove").exists();
|
||||
});
|
||||
|
||||
test("regular users can't disable slow mode", async function (assert) {
|
||||
|
@ -56,6 +55,6 @@ module("Integration | Component | slow-mode-info", function (hooks) {
|
|||
|
||||
assert
|
||||
.dom(".slow-mode-remove")
|
||||
.doesNotExist("it doesn't let you disable slow mode");
|
||||
.doesNotExist("doesn't let you disable slow mode");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,10 +2,7 @@ import { render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import {
|
||||
count,
|
||||
publishToMessageBus,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { publishToMessageBus } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | software-update-prompt", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -19,10 +16,8 @@ module("Integration | Component | software-update-prompt", function (hooks) {
|
|||
|
||||
await publishToMessageBus("/global/asset-version", "somenewversion");
|
||||
|
||||
assert.strictEqual(
|
||||
count("div.software-update-prompt.require-software-refresh"),
|
||||
1,
|
||||
"it does have the class to show the prompt"
|
||||
);
|
||||
assert
|
||||
.dom("div.software-update-prompt")
|
||||
.hasClass("require-software-refresh", "has the class to show the prompt");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@ import { render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
import Theme from "admin/models/theme";
|
||||
|
||||
|
@ -14,7 +14,7 @@ module("Integration | Component | themes-list-item", function (hooks) {
|
|||
|
||||
await render(hbs`<ThemesListItem @theme={{this.theme}} />`);
|
||||
|
||||
assert.strictEqual(count(".d-icon-check"), 1, "shows default theme icon");
|
||||
assert.dom(".d-icon-check").exists("shows default theme icon");
|
||||
});
|
||||
|
||||
test("pending updates", async function (assert) {
|
||||
|
@ -25,11 +25,7 @@ module("Integration | Component | themes-list-item", function (hooks) {
|
|||
|
||||
await render(hbs`<ThemesListItem @theme={{this.theme}} />`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-arrows-rotate"),
|
||||
1,
|
||||
"shows pending update icon"
|
||||
);
|
||||
assert.dom(".d-icon-arrows-rotate").exists("shows pending update icon");
|
||||
});
|
||||
|
||||
test("broken theme", async function (assert) {
|
||||
|
@ -43,11 +39,7 @@ module("Integration | Component | themes-list-item", function (hooks) {
|
|||
|
||||
await render(hbs`<ThemesListItem @theme={{this.theme}} />`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-circle-exclamation"),
|
||||
1,
|
||||
"shows broken theme icon"
|
||||
);
|
||||
assert.dom(".d-icon-circle-exclamation").exists("shows broken theme icon");
|
||||
});
|
||||
|
||||
test("with children", async function (assert) {
|
||||
|
|
|
@ -2,7 +2,7 @@ import { fillIn, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import I18n from "discourse-i18n";
|
||||
import Theme, { COMPONENTS, THEMES } from "admin/models/theme";
|
||||
|
@ -56,11 +56,9 @@ module("Integration | Component | themes-list", function (hooks) {
|
|||
.doesNotExist(
|
||||
"there is no inactive themes separator when all themes are inactive"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".themes-list-container__item .info"),
|
||||
5,
|
||||
"displays all themes"
|
||||
);
|
||||
assert
|
||||
.dom(".themes-list-container__item .info")
|
||||
.exists({ count: 5 }, "displays all themes");
|
||||
|
||||
[2, 3].forEach((num) => this.themes[num].set("user_selectable", true));
|
||||
this.themes[4].set("default", true);
|
||||
|
@ -88,9 +86,10 @@ module("Integration | Component | themes-list", function (hooks) {
|
|||
);
|
||||
|
||||
this.set("themes", []);
|
||||
assert.strictEqual(
|
||||
count(".themes-list-container__item .empty"),
|
||||
1,
|
||||
assert
|
||||
.dom(".themes-list-container__item .empty")
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"shows one entry with a message when there is nothing to display"
|
||||
);
|
||||
assert
|
||||
|
@ -133,16 +132,15 @@ module("Integration | Component | themes-list", function (hooks) {
|
|||
);
|
||||
|
||||
assert.dom(".inactive-indicator").doesNotExist("there is no separator");
|
||||
assert.strictEqual(
|
||||
count(".themes-list-container__item .info"),
|
||||
5,
|
||||
"displays all components"
|
||||
);
|
||||
assert
|
||||
.dom(".themes-list-container__item .info")
|
||||
.exists({ count: 5 }, "displays all components");
|
||||
|
||||
this.set("components", []);
|
||||
assert.strictEqual(
|
||||
count(".themes-list-container__item .empty"),
|
||||
1,
|
||||
assert
|
||||
.dom(".themes-list-container__item .empty")
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"shows one entry with a message when there is nothing to display"
|
||||
);
|
||||
assert
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | uppy-image-uploader", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -12,17 +11,8 @@ module("Integration | Component | uppy-image-uploader", function (hooks) {
|
|||
<UppyImageUploader @type="avatar" @id="test-uppy-image-uploader" @imageUrl="/images/avatar.png" @placeholderUrl="/not/used.png" />
|
||||
`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-far-image"),
|
||||
1,
|
||||
"it displays the upload icon"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-trash-can"),
|
||||
1,
|
||||
"it displays the trash icon"
|
||||
);
|
||||
assert.dom(".d-icon-far-image").exists("displays the upload icon");
|
||||
assert.dom(".d-icon-trash-can").exists("displays the trash icon");
|
||||
|
||||
assert
|
||||
.dom(".placeholder-overlay")
|
||||
|
@ -42,12 +32,7 @@ module("Integration | Component | uppy-image-uploader", function (hooks) {
|
|||
hbs`<UppyImageUploader @type="site_setting" @id="test-uppy-image-uploader" />`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-far-image"),
|
||||
1,
|
||||
"it displays the upload icon"
|
||||
);
|
||||
|
||||
assert.dom(".d-icon-far-image").exists("displays the upload icon");
|
||||
assert.dom(".d-icon-trash-can").doesNotExist("does not display trash icon");
|
||||
|
||||
assert
|
||||
|
@ -60,22 +45,13 @@ module("Integration | Component | uppy-image-uploader", function (hooks) {
|
|||
hbs`<UppyImageUploader @type="composer" @id="test-uppy-image-uploader" @placeholderUrl="/images/avatar.png" />`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".d-icon-far-image"),
|
||||
1,
|
||||
"it displays the upload icon"
|
||||
);
|
||||
|
||||
assert.dom(".d-icon-far-image").exists("displays the upload icon");
|
||||
assert.dom(".d-icon-trash-can").doesNotExist("does not display trash icon");
|
||||
|
||||
assert
|
||||
.dom(".image-uploader-lightbox-btn")
|
||||
.doesNotExist("it does not display the button to open image lightbox");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".placeholder-overlay"),
|
||||
1,
|
||||
"it displays the placeholder image"
|
||||
);
|
||||
assert.dom(".placeholder-overlay").exists("displays the placeholder image");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@ import { blur, click, fillIn, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
||||
module("Integration | Component | value-list", function (hooks) {
|
||||
|
@ -17,11 +17,9 @@ module("Integration | Component | value-list", function (hooks) {
|
|||
await selectKit().fillInFilter("eviltrout");
|
||||
await selectKit().keyboard("Enter");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
this.values,
|
||||
|
@ -52,11 +50,9 @@ module("Integration | Component | value-list", function (hooks) {
|
|||
|
||||
await click(".values .value[data-index='0'] .remove-value-btn");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
1,
|
||||
"it removes the value from the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 1 }, "removes the value from the list of values");
|
||||
|
||||
assert.strictEqual(this.values, "osama", "it removes the expected value");
|
||||
|
||||
|
@ -80,11 +76,9 @@ module("Integration | Component | value-list", function (hooks) {
|
|||
await selectKit().expand();
|
||||
await selectKit().selectRowByValue("maja");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
this.values,
|
||||
|
@ -104,11 +98,9 @@ module("Integration | Component | value-list", function (hooks) {
|
|||
await selectKit().fillInFilter("eviltrout");
|
||||
await selectKit().selectRowByValue("eviltrout");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.deepEqual(
|
||||
this.values,
|
||||
|
@ -128,11 +120,9 @@ module("Integration | Component | value-list", function (hooks) {
|
|||
await selectKit().fillInFilter("eviltrout");
|
||||
await selectKit().keyboard("Enter");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".values .value"),
|
||||
3,
|
||||
"it adds the value to the list of values"
|
||||
);
|
||||
assert
|
||||
.dom(".values .value")
|
||||
.exists({ count: 3 }, "adds the value to the list of values");
|
||||
|
||||
assert.strictEqual(
|
||||
this.values,
|
||||
|
|
|
@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | Widget | actions-summary", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -18,15 +17,7 @@ module("Integration | Component | Widget | actions-summary", function (hooks) {
|
|||
hbs`<MountWidget @widget="actions-summary" @args={{this.args}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".post-action .d-icon-trash-can"),
|
||||
1,
|
||||
"it has the deleted icon"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".avatar[title=eviltrout]"),
|
||||
1,
|
||||
"it has the deleted by avatar"
|
||||
);
|
||||
assert.dom(".post-action .d-icon-trash-can").exists("has the deleted icon");
|
||||
assert.dom(".avatar[title=eviltrout]").exists("has the deleted by avatar");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, render } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
module("Integration | Component | Widget | post-links", function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
@ -26,11 +25,9 @@ module("Integration | Component | Widget | post-links", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post-links" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".post-links a.track-link"),
|
||||
1,
|
||||
"it hides the dupe link"
|
||||
);
|
||||
assert
|
||||
.dom(".post-links a.track-link")
|
||||
.exists({ count: 1 }, "hides the dupe link");
|
||||
});
|
||||
|
||||
test("collapsed links", async function (assert) {
|
||||
|
@ -77,9 +74,9 @@ module("Integration | Component | Widget | post-links", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post-links" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(count(".expand-links"), 1, "collapsed by default");
|
||||
assert.dom(".expand-links").exists({ count: 1 }, "collapsed by default");
|
||||
|
||||
await click("a.expand-links");
|
||||
assert.strictEqual(count(".post-links a.track-link"), 7);
|
||||
assert.dom(".post-links a.track-link").exists({ count: 7 });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,7 +4,6 @@ import { module, test } from "qunit";
|
|||
import { h } from "virtual-dom";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { resetPostMenuExtraButtons } from "discourse/widgets/post-menu";
|
||||
import { createWidget } from "discourse/widgets/widget";
|
||||
|
||||
|
@ -31,11 +30,9 @@ module("Integration | Component | Widget | post-menu", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post-menu" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".actions .extra-buttons .hot-coffee"),
|
||||
1,
|
||||
"It renders extra button"
|
||||
);
|
||||
assert
|
||||
.dom(".actions .extra-buttons .hot-coffee")
|
||||
.exists("renders extra button");
|
||||
});
|
||||
|
||||
test("add extra button with feedback", async function (assert) {
|
||||
|
@ -67,17 +64,11 @@ module("Integration | Component | Widget | post-menu", function (hooks) {
|
|||
await click(".hot-coffee");
|
||||
|
||||
assert.strictEqual(testPost.id, 123, "callback was called with post");
|
||||
assert.strictEqual(
|
||||
count(".post-action-feedback-button"),
|
||||
1,
|
||||
"It renders feedback"
|
||||
);
|
||||
assert.dom(".post-action-feedback-button").exists("renders feedback");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".actions .extra-buttons .hot-coffee"),
|
||||
1,
|
||||
"It renders extra button"
|
||||
);
|
||||
assert
|
||||
.dom(".actions .extra-buttons .hot-coffee")
|
||||
.exists("renders extra button");
|
||||
});
|
||||
|
||||
test("removes button based on callback", async function (assert) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import { hbs } from "ember-cli-htmlbars";
|
|||
import { module, test } from "qunit";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { resetPostMenuExtraButtons } from "discourse/widgets/post-menu";
|
||||
|
||||
function postStreamTest(name, attrs) {
|
||||
|
@ -61,19 +60,17 @@ module("Integration | Component | Widget | post-stream", function (hooks) {
|
|||
},
|
||||
|
||||
test(assert) {
|
||||
assert.strictEqual(count(".post-stream"), 1);
|
||||
assert.strictEqual(count(".topic-post"), 1, "renders all posts");
|
||||
assert.dom(".post-stream").exists({ count: 1 });
|
||||
assert.dom(".topic-post").exists({ count: 1 }, "renders all posts");
|
||||
assert.notStrictEqual(lastTransformedPost, null, "it transforms posts");
|
||||
assert.strictEqual(
|
||||
lastTransformedPost.topic.id,
|
||||
1234,
|
||||
"it also transforms the topic"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".actions .extra-buttons .hot-coffee"),
|
||||
1,
|
||||
"should have the extended button"
|
||||
);
|
||||
assert
|
||||
.dom(".actions .extra-buttons .hot-coffee")
|
||||
.exists({ count: 1 }, "has the extended button");
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -129,58 +126,42 @@ module("Integration | Component | Widget | post-stream", function (hooks) {
|
|||
},
|
||||
|
||||
test(assert) {
|
||||
assert.strictEqual(count(".post-stream"), 1);
|
||||
assert.strictEqual(count(".topic-post"), 6, "renders all posts");
|
||||
assert.dom(".post-stream").exists({ count: 1 });
|
||||
assert.dom(".topic-post").exists({ count: 6 }, "renders all posts");
|
||||
|
||||
// look for special class bindings
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(1).topic-owner"),
|
||||
1,
|
||||
"it applies the topic owner class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(1).group-trout"),
|
||||
1,
|
||||
"it applies the primary group class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(1).regular"),
|
||||
1,
|
||||
"it applies the regular class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(2).moderator"),
|
||||
1,
|
||||
"it applies the moderator class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(3).post-hidden"),
|
||||
1,
|
||||
"it applies the hidden class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(4).whisper"),
|
||||
1,
|
||||
"it applies the whisper class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".topic-post:nth-of-type(5).wiki"),
|
||||
1,
|
||||
"it applies the wiki class"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(1).topic-owner")
|
||||
.exists({ count: 1 }, "applies the topic owner class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(1).group-trout")
|
||||
.exists({ count: 1 }, "applies the primary group class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(1).regular")
|
||||
.exists({ count: 1 }, "applies the regular class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(2).moderator")
|
||||
.exists({ count: 1 }, "applies the moderator class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(3).post-hidden")
|
||||
.exists({ count: 1 }, "applies the hidden class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(4).whisper")
|
||||
.exists({ count: 1 }, "applies the whisper class");
|
||||
assert
|
||||
.dom(".topic-post:nth-of-type(5).wiki")
|
||||
.exists({ count: 1 }, "applies the wiki class");
|
||||
|
||||
// it renders an article for the body with appropriate attributes
|
||||
assert.strictEqual(count("article#post_2"), 1);
|
||||
assert.strictEqual(count('article[data-user-id="123"]'), 1);
|
||||
assert.strictEqual(count('article[data-post-id="3"]'), 1);
|
||||
assert.strictEqual(count("article#post_5.via-email"), 1);
|
||||
assert.strictEqual(count("article#post_6.is-auto-generated"), 1);
|
||||
assert.dom("article#post_2").exists({ count: 1 });
|
||||
assert.dom('article[data-user-id="123"]').exists({ count: 1 });
|
||||
assert.dom('article[data-post-id="3"]').exists({ count: 1 });
|
||||
assert.dom("article#post_5.via-email").exists({ count: 1 });
|
||||
assert.dom("article#post_6.is-auto-generated").exists({ count: 1 });
|
||||
|
||||
assert.strictEqual(
|
||||
count("article:nth-of-type(1) .main-avatar"),
|
||||
1,
|
||||
"renders the main avatar"
|
||||
);
|
||||
assert
|
||||
.dom("article:nth-of-type(1) .main-avatar")
|
||||
.exists({ count: 1 }, "renders the main avatar");
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -201,16 +182,12 @@ module("Integration | Component | Widget | post-stream", function (hooks) {
|
|||
},
|
||||
|
||||
test(assert) {
|
||||
assert.strictEqual(
|
||||
count(".topic-post.deleted"),
|
||||
1,
|
||||
"it applies the deleted class"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".deleted-user-avatar"),
|
||||
1,
|
||||
"it has the trash avatar"
|
||||
);
|
||||
assert
|
||||
.dom(".topic-post.deleted")
|
||||
.exists({ count: 1 }, "applies the deleted class");
|
||||
assert
|
||||
.dom(".deleted-user-avatar")
|
||||
.exists({ count: 1 }, "has the trash avatar");
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,7 +4,7 @@ import { click, render, triggerEvent } from "@ember/test-helpers";
|
|||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
module("Integration | Component | Widget | post", function (hooks) {
|
||||
|
@ -169,8 +169,8 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(count(".topic-post.whisper"), 1);
|
||||
assert.strictEqual(count(".post-info.whisper"), 1);
|
||||
assert.dom(".topic-post.whisper").exists();
|
||||
assert.dom(".post-info.whisper").exists();
|
||||
});
|
||||
|
||||
test("like count button", async function (assert) {
|
||||
|
@ -190,13 +190,13 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
hbs`<MountWidget @widget="post" @model={{this.post}} @args={{this.args}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(count("button.like-count"), 1);
|
||||
assert.dom("button.like-count").exists();
|
||||
assert.dom(".who-liked").doesNotExist();
|
||||
|
||||
// toggle it on
|
||||
await click("button.like-count");
|
||||
assert.strictEqual(count(".who-liked"), 1);
|
||||
assert.strictEqual(count(".who-liked a.trigger-user-card"), 1);
|
||||
assert.dom(".who-liked").exists();
|
||||
assert.dom(".who-liked a.trigger-user-card").exists();
|
||||
|
||||
// toggle it off
|
||||
await click("button.like-count");
|
||||
|
@ -251,7 +251,7 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
await click(".actions button.like");
|
||||
assert.dom(".actions button.like").doesNotExist();
|
||||
assert.dom(".actions button.has-like").exists();
|
||||
assert.strictEqual(count(".actions button.like-count"), 1);
|
||||
assert.dom(".actions button.like-count").exists();
|
||||
|
||||
await click(".actions button.has-like");
|
||||
assert.dom(".actions button.like").exists();
|
||||
|
@ -347,8 +347,8 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
|
||||
await click(".show-more-actions");
|
||||
|
||||
assert.strictEqual(count("button.create-flag"), 1, `button is displayed`);
|
||||
assert.strictEqual(count("button.delete"), 1, `button is displayed`);
|
||||
assert.dom("button.create-flag").exists("button is displayed");
|
||||
assert.dom("button.delete").exists("button is displayed");
|
||||
assert
|
||||
.dom("button.delete")
|
||||
.hasAttribute(
|
||||
|
@ -442,7 +442,7 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
<MountWidget @widget="post" @args={{this.args}} @showFlags={{this.showFlags}} />
|
||||
`);
|
||||
|
||||
assert.strictEqual(count("button.create-flag"), 1);
|
||||
assert.dom("button.create-flag").exists();
|
||||
|
||||
await click("button.create-flag");
|
||||
assert.ok(this.flagsShown, "it triggered the action");
|
||||
|
@ -503,7 +503,7 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
await render(hbs`<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
assert.dom("a.reply-to-tab").exists("shows the tab");
|
||||
assert.strictEqual(count(".avoid-tab"), 1, "has the avoid tab class");
|
||||
assert.dom(".avoid-tab").exists("has the avoid tab class");
|
||||
});
|
||||
|
||||
test("reply directly above", async function (assert) {
|
||||
|
@ -516,10 +516,10 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(count(".avoid-tab"), 1, "has the avoid tab class");
|
||||
assert.dom(".avoid-tab").exists("has the avoid tab class");
|
||||
await click("a.reply-to-tab");
|
||||
assert.strictEqual(count("section.embedded-posts.top .cooked"), 1);
|
||||
assert.strictEqual(count("section.embedded-posts .d-icon-arrow-up"), 1);
|
||||
assert.dom("section.embedded-posts.top .cooked").exists();
|
||||
assert.dom("section.embedded-posts .d-icon-arrow-up").exists();
|
||||
});
|
||||
|
||||
test("cooked content hidden", async function (assert) {
|
||||
|
@ -579,7 +579,7 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
<MountWidget @widget="post" @args={{this.args}} @toggleBookmark={{this.toggleBookmark}} />
|
||||
`);
|
||||
|
||||
assert.strictEqual(count(".post-menu-area .bookmark"), 1);
|
||||
assert.dom(".post-menu-area .bookmark").exists();
|
||||
assert.dom("button.bookmarked").doesNotExist();
|
||||
});
|
||||
|
||||
|
@ -767,7 +767,7 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
assert.strictEqual(count("button.show-replies"), 1);
|
||||
assert.dom("button.show-replies").exists();
|
||||
});
|
||||
|
||||
test("replies - one below, suppressed", async function (assert) {
|
||||
|
@ -786,8 +786,8 @@ module("Integration | Component | Widget | post", function (hooks) {
|
|||
await render(hbs`<MountWidget @widget="post" @args={{this.args}} />`);
|
||||
|
||||
await click("button.show-replies");
|
||||
assert.strictEqual(count("section.embedded-posts.bottom .cooked"), 1);
|
||||
assert.strictEqual(count("section.embedded-posts .d-icon-arrow-down"), 1);
|
||||
assert.dom("section.embedded-posts.bottom .cooked").exists();
|
||||
assert.dom("section.embedded-posts .d-icon-arrow-down").exists();
|
||||
});
|
||||
|
||||
test("shows the topic map when setting the 'topicMap' attribute", async function (assert) {
|
||||
|
|
|
@ -6,7 +6,7 @@ import { Promise } from "rsvp";
|
|||
import { h } from "virtual-dom";
|
||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import widgetHbs from "discourse/widgets/hbs-compiler";
|
||||
import { createWidget } from "discourse/widgets/widget";
|
||||
import I18n from "discourse-i18n";
|
||||
|
@ -266,7 +266,7 @@ module("Integration | Component | Widget | base", function (hooks) {
|
|||
|
||||
await render(hbs`<MountWidget @widget="attach-test" />`);
|
||||
|
||||
assert.ok(count(".container"), "renders container");
|
||||
assert.dom(".container").exists("renders container");
|
||||
assert.dom(".container .value").hasText("hello world");
|
||||
});
|
||||
|
||||
|
@ -279,7 +279,7 @@ module("Integration | Component | Widget | base", function (hooks) {
|
|||
hbs`<MountWidget @widget="hbs-icon-test" @args={{this.args}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(count(".d-icon-arrow-down"), 1);
|
||||
assert.dom(".d-icon-arrow-down").exists();
|
||||
});
|
||||
|
||||
test("handlebars i18n", async function (assert) {
|
||||
|
@ -328,7 +328,7 @@ module("Integration | Component | Widget | base", function (hooks) {
|
|||
hbs`<MountWidget @widget="hbs-each-test" @args={{this.args}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(count("ul li"), 3);
|
||||
assert.dom("ul li").exists({ count: 3 });
|
||||
assert.dom("ul li:nth-of-type(1)").hasText("one");
|
||||
});
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import hbs from "htmlbars-inline-precompile";
|
|||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import pretender from "discourse/tests/helpers/create-pretender";
|
||||
import { count, createFile } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { createFile } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
const fakeUpload = {
|
||||
type: ".png",
|
||||
|
@ -48,8 +48,7 @@ module("Discourse Chat | Component | chat-composer-uploads", function (hooks) {
|
|||
<ChatComposerUploads @existingUploads={{this.existingUploads}} @fileUploadElementId="chat-widget-uploader" />
|
||||
`);
|
||||
|
||||
assert.strictEqual(count(".chat-composer-upload"), 1);
|
||||
assert.dom(".chat-composer-upload").exists();
|
||||
assert.dom(".chat-composer-upload").exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("upload starts and completes", async function (assert) {
|
||||
|
@ -130,9 +129,9 @@ module("Discourse Chat | Component | chat-composer-uploads", function (hooks) {
|
|||
);
|
||||
|
||||
await waitFor(".chat-composer-upload");
|
||||
assert.strictEqual(count(".chat-composer-upload"), 1);
|
||||
assert.dom(".chat-composer-upload").exists({ count: 1 });
|
||||
|
||||
await click(".chat-composer-upload__remove-btn");
|
||||
assert.strictEqual(count(".chat-composer-upload"), 0);
|
||||
assert.dom(".chat-composer-upload").doesNotExist();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -33,9 +33,8 @@ module(
|
|||
});
|
||||
|
||||
test("when channel is a public channel", async function (assert) {
|
||||
const count = 10;
|
||||
this.channel = new ChatFabricators(getOwner(this)).channel();
|
||||
this.siteSettings.chat_channel_retention_days = count;
|
||||
this.siteSettings.chat_channel_retention_days = 10;
|
||||
|
||||
await render(
|
||||
hbs`<ChatRetentionReminderText @channel={{this.channel}} />`
|
||||
|
@ -43,7 +42,7 @@ module(
|
|||
|
||||
assert
|
||||
.dom(".chat-retention-reminder-text")
|
||||
.includesText(I18n.t("chat.retention_reminders.long", { count }));
|
||||
.includesText(I18n.t("chat.retention_reminders.long", { count: 10 }));
|
||||
|
||||
await render(
|
||||
hbs`<ChatRetentionReminderText @channel={{this.channel}} @type="short" />`
|
||||
|
@ -51,13 +50,12 @@ module(
|
|||
|
||||
assert
|
||||
.dom(".chat-retention-reminder-text")
|
||||
.includesText(I18n.t("chat.retention_reminders.short", { count }));
|
||||
.includesText(I18n.t("chat.retention_reminders.short", { count: 10 }));
|
||||
});
|
||||
|
||||
test("when channel is a DM channel", async function (assert) {
|
||||
const count = 10;
|
||||
this.channel = new ChatFabricators(getOwner(this)).directMessageChannel();
|
||||
this.siteSettings.chat_dm_retention_days = count;
|
||||
this.siteSettings.chat_dm_retention_days = 10;
|
||||
|
||||
await render(
|
||||
hbs`<ChatRetentionReminderText @channel={{this.channel}} />`
|
||||
|
@ -65,7 +63,7 @@ module(
|
|||
|
||||
assert
|
||||
.dom(".chat-retention-reminder-text")
|
||||
.includesText(I18n.t("chat.retention_reminders.long", { count }));
|
||||
.includesText(I18n.t("chat.retention_reminders.long", { count: 10 }));
|
||||
|
||||
await render(
|
||||
hbs`<ChatRetentionReminderText @channel={{this.channel}} @type="short" />`
|
||||
|
@ -73,7 +71,7 @@ module(
|
|||
|
||||
assert
|
||||
.dom(".chat-retention-reminder-text")
|
||||
.includesText(I18n.t("chat.retention_reminders.short", { count }));
|
||||
.includesText(I18n.t("chat.retention_reminders.short", { count: 10 }));
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Poll breakdown", function (needs) {
|
||||
needs.user();
|
||||
|
@ -77,9 +73,10 @@ acceptance("Poll breakdown", function (needs) {
|
|||
|
||||
assert.dom(".poll-breakdown-total-votes").exists("displays the vote count");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".poll-breakdown-chart-container"),
|
||||
2,
|
||||
assert
|
||||
.dom(".poll-breakdown-chart-container")
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"renders a chart for each of the groups in group_results response"
|
||||
);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Poll quote", function (needs) {
|
||||
needs.user();
|
||||
|
@ -427,7 +427,7 @@ acceptance("Poll quote", function (needs) {
|
|||
test("renders and extends", async function (assert) {
|
||||
await visit("/t/-/topic_with_two_quoted_polls");
|
||||
await click(".quote-controls");
|
||||
assert.strictEqual(count(".poll"), 2, "polls are rendered");
|
||||
assert.strictEqual(count(".poll-buttons"), 2, "polls are extended");
|
||||
assert.dom(".poll").exists({ count: 2 }, "polls are rendered");
|
||||
assert.dom(".poll-buttons").exists({ count: 2 }, "polls are extended");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, visit } from "@ember/test-helpers";
|
|||
import { test } from "qunit";
|
||||
import {
|
||||
acceptance,
|
||||
count,
|
||||
publishToMessageBus,
|
||||
query,
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
|
@ -1043,16 +1042,12 @@ acceptance("Poll results", function (needs) {
|
|||
|
||||
test("can load more voters", async function (assert) {
|
||||
await visit("/t/load-more-poll-voters/134");
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(1) .poll-voters li"),
|
||||
1,
|
||||
"Initially, one voter shown on first option"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(2) .poll-voters li"),
|
||||
0,
|
||||
"Initially, no voter shown on second option"
|
||||
);
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(1) .poll-voters li")
|
||||
.exists({ count: 1 }, "initially, one voter shown on first option");
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(2) .poll-voters li")
|
||||
.doesNotExist("initially, no voter shown on second option");
|
||||
|
||||
await publishToMessageBus("/polls/134", {
|
||||
post_id: "156",
|
||||
|
@ -1093,28 +1088,28 @@ acceptance("Poll results", function (needs) {
|
|||
],
|
||||
});
|
||||
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(1) .poll-voters li"),
|
||||
1,
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(1) .poll-voters li")
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"after incoming message, one voter shown on first option"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(2) .poll-voters li"),
|
||||
0,
|
||||
"after incoming message, no voter shown on second option"
|
||||
);
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(2) .poll-voters li")
|
||||
.doesNotExist("after incoming message, no voter shown on second option");
|
||||
|
||||
await click(".poll-voters-toggle-expand");
|
||||
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(1) .poll-voters li"),
|
||||
2,
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(1) .poll-voters li")
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"after clicking fetch voters button, two voters shown on first option"
|
||||
);
|
||||
assert.strictEqual(
|
||||
count(".poll-container .results li:nth-child(2) .poll-voters li"),
|
||||
0,
|
||||
assert
|
||||
.dom(".poll-container .results li:nth-child(2) .poll-voters li")
|
||||
.doesNotExist(
|
||||
"after clicking fetch voters button, no voters shown on second option"
|
||||
);
|
||||
});
|
||||
|
@ -1142,21 +1137,20 @@ acceptance("Poll results", function (needs) {
|
|||
"Votes tab is active"
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".poll-container .discourse-poll-ranked_choice-results .poll-voters li"
|
||||
),
|
||||
1,
|
||||
"Initially, one voter shown on first option"
|
||||
);
|
||||
)
|
||||
.exists({ count: 1 }, "Initially, one voter shown on first option");
|
||||
|
||||
await click(".poll-voters-toggle-expand");
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".poll-container .discourse-poll-ranked_choice-results .results li:nth-child(1) .poll-voters li"
|
||||
),
|
||||
2,
|
||||
)
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"after clicking fetch voters button, two voters shown on first option"
|
||||
);
|
||||
|
||||
|
@ -1224,11 +1218,12 @@ acceptance("Poll results", function (needs) {
|
|||
],
|
||||
});
|
||||
|
||||
assert.strictEqual(
|
||||
count(
|
||||
assert
|
||||
.dom(
|
||||
".poll-container .discourse-poll-ranked_choice-results .results li:nth-child(1) .poll-voters li"
|
||||
),
|
||||
2,
|
||||
)
|
||||
.exists(
|
||||
{ count: 2 },
|
||||
"after incoming message containing 3 voters, only 2 voters shown on first option as bus updates are not supported once voters are expanded"
|
||||
);
|
||||
});
|
||||
|
@ -1238,13 +1233,13 @@ acceptance("Poll results", function (needs) {
|
|||
|
||||
await click(".toggle-results");
|
||||
|
||||
assert.strictEqual(count(".poll-container .d-icon-circle"), 1);
|
||||
assert.strictEqual(count(".poll-container .d-icon-far-circle"), 1);
|
||||
assert.dom(".poll-container .d-icon-circle").exists({ count: 1 });
|
||||
assert.dom(".poll-container .d-icon-far-circle").exists({ count: 1 });
|
||||
|
||||
await click(".remove-vote");
|
||||
|
||||
assert.strictEqual(count(".poll-container .d-icon-circle"), 0);
|
||||
assert.strictEqual(count(".poll-container .d-icon-far-circle"), 2);
|
||||
assert.dom(".poll-container .d-icon-circle").doesNotExist();
|
||||
assert.dom(".poll-container .d-icon-far-circle").exists({ count: 2 });
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import { click, render } from "@ember/test-helpers";
|
|||
import hbs from "htmlbars-inline-precompile";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
module("Poll | Component | poll-buttons-dropdown", function (hooks) {
|
||||
|
@ -38,7 +38,6 @@ module("Poll | Component | poll-buttons-dropdown", function (hooks) {
|
|||
await click(".widget-dropdown-header");
|
||||
|
||||
assert.dom("li.dropdown-menu__item").exists({ count: 2 });
|
||||
|
||||
assert.strictEqual(
|
||||
query("li.dropdown-menu__item span").textContent.trim(),
|
||||
I18n.t("poll.export-results.label"),
|
||||
|
@ -73,8 +72,7 @@ module("Poll | Component | poll-buttons-dropdown", function (hooks) {
|
|||
|
||||
await click(".widget-dropdown-header");
|
||||
|
||||
assert.strictEqual(count("li.dropdown-menu__item"), 2);
|
||||
|
||||
assert.dom("li.dropdown-menu__item").exists({ count: 2 });
|
||||
assert
|
||||
.dom(query("li.dropdown-menu__item span"))
|
||||
.hasText(
|
||||
|
@ -106,10 +104,8 @@ module("Poll | Component | poll-buttons-dropdown", function (hooks) {
|
|||
@dropDownClick={{this.dropDownClick}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count(".widget-dropdown-header"), 0);
|
||||
|
||||
assert.strictEqual(count("button.widget-button"), 1);
|
||||
|
||||
assert.dom(".widget-dropdown-header").doesNotExist();
|
||||
assert.dom("button.widget-button").exists({ count: 1 });
|
||||
assert.strictEqual(
|
||||
query("button.widget-button span.d-button-label").textContent.trim(),
|
||||
I18n.t("poll.breakdown.breakdown"),
|
||||
|
@ -140,8 +136,7 @@ module("Poll | Component | poll-buttons-dropdown", function (hooks) {
|
|||
@dropDownClick={{this.dropDownClick}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count(".widget-dropdown-header"), 0);
|
||||
|
||||
assert.strictEqual(count("button.widget-button"), 0);
|
||||
assert.dom(".widget-dropdown-header").doesNotExist();
|
||||
assert.dom("button.widget-button").doesNotExist();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { click, render } from "@ember/test-helpers";
|
|||
import hbs from "htmlbars-inline-precompile";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
const OPTIONS = [
|
||||
|
@ -47,7 +46,7 @@ module("Poll | Component | poll-options", function (hooks) {
|
|||
@sendRadioClick={{this.toggleOption}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li .d-icon-far-circle:nth-of-type(1)"), 3);
|
||||
assert.dom("li .d-icon-far-circle:nth-of-type(1)").exists({ count: 3 });
|
||||
});
|
||||
|
||||
test("single, selected", async function (assert) {
|
||||
|
@ -68,7 +67,7 @@ module("Poll | Component | poll-options", function (hooks) {
|
|||
@sendRadioClick={{this.toggleOption}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li .d-icon-circle:nth-of-type(1)"), 1);
|
||||
assert.dom("li .d-icon-circle:nth-of-type(1)").exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("multi, not selected", async function (assert) {
|
||||
|
@ -89,7 +88,7 @@ module("Poll | Component | poll-options", function (hooks) {
|
|||
@sendRadioClick={{this.toggleOption}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li .d-icon-far-square:nth-of-type(1)"), 3);
|
||||
assert.dom("li .d-icon-far-square:nth-of-type(1)").exists({ count: 3 });
|
||||
});
|
||||
|
||||
test("multi, selected", async function (assert) {
|
||||
|
@ -110,7 +109,9 @@ module("Poll | Component | poll-options", function (hooks) {
|
|||
@sendRadioClick={{this.toggleOption}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li .d-icon-far-square-check:nth-of-type(1)"), 1);
|
||||
assert
|
||||
.dom("li .d-icon-far-square-check:nth-of-type(1)")
|
||||
.exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("single with images", async function (assert) {
|
||||
|
@ -127,7 +128,7 @@ module("Poll | Component | poll-options", function (hooks) {
|
|||
@sendRadioClick={{this.toggleOption}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li img"), 2);
|
||||
assert.dom("li img").exists({ count: 2 });
|
||||
});
|
||||
|
||||
test("ranked choice - priorities", async function (assert) {
|
||||
|
|
|
@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers";
|
|||
import hbs from "htmlbars-inline-precompile";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
const OPTIONS = [
|
||||
{ id: "1ddc47be0d2315b9711ee8526ca9d83f", html: "This", votes: 3, rank: 0 },
|
||||
|
@ -25,8 +24,7 @@ module("Poll | Component | poll-results-pie", function (hooks) {
|
|||
hbs`<PollResultsPie @id={{this.id}} @options={{this.options}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(count("li.legend"), 3);
|
||||
|
||||
assert.strictEqual(count("canvas.poll-results-canvas"), 1);
|
||||
assert.dom("li.legend").exists({ count: 3 });
|
||||
assert.dom("canvas.poll-results-canvas").exists({ count: 1 });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@ import { render } from "@ember/test-helpers";
|
|||
import hbs from "htmlbars-inline-precompile";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "discourse-i18n";
|
||||
|
||||
const RANKED_CHOICE_OUTCOME = {
|
||||
|
@ -43,11 +43,9 @@ module("Poll | Component | poll-results-ranked-choice", function (hooks) {
|
|||
hbs`<PollResultsRankedChoice @rankedChoiceOutcome={{this.rankedChoiceOutcome}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count("table.poll-results-ranked-choice tr"),
|
||||
3,
|
||||
"there are two rounds of ranked choice"
|
||||
);
|
||||
assert
|
||||
.dom("table.poll-results-ranked-choice tr")
|
||||
.exists({ count: 3 }, "there are two rounds of ranked choice");
|
||||
|
||||
assert.strictEqual(
|
||||
query("span.poll-results-ranked-choice-info").textContent.trim(),
|
||||
|
@ -66,9 +64,10 @@ module("Poll | Component | poll-results-ranked-choice", function (hooks) {
|
|||
hbs`<PollResultsRankedChoice @rankedChoiceOutcome={{this.rankedChoiceOutcome}} />`
|
||||
);
|
||||
|
||||
assert.strictEqual(
|
||||
count("table.poll-results-ranked-choice tr"),
|
||||
1,
|
||||
assert
|
||||
.dom("table.poll-results-ranked-choice tr")
|
||||
.exists(
|
||||
{ count: 1 },
|
||||
"there are no rounds of ranked choice displayed, only the header"
|
||||
);
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@ import { render } from "@ember/test-helpers";
|
|||
import hbs from "htmlbars-inline-precompile";
|
||||
import { module, test } from "qunit";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { count } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
const TWO_OPTIONS = [
|
||||
{
|
||||
|
@ -86,7 +85,7 @@ module("Poll | Component | poll-results-tabs", function (hooks) {
|
|||
@fetchVoters={{this.fetchVoters}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li.tab"), 1);
|
||||
assert.dom("li.tab").exists({ count: 1 });
|
||||
});
|
||||
|
||||
test("Renders two tabs for public ranked choice poll", async function (assert) {
|
||||
|
@ -118,7 +117,7 @@ module("Poll | Component | poll-results-tabs", function (hooks) {
|
|||
@fetchVoters={{this.fetchVoters}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li.tab"), 2);
|
||||
assert.dom("li.tab").exists({ count: 2 });
|
||||
});
|
||||
|
||||
test("Renders one tab for private ranked choice poll", async function (assert) {
|
||||
|
@ -150,6 +149,6 @@ module("Poll | Component | poll-results-tabs", function (hooks) {
|
|||
@fetchVoters={{this.fetchVoters}}
|
||||
/>`);
|
||||
|
||||
assert.strictEqual(count("li.tab"), 1);
|
||||
assert.dom("li.tab").exists({ count: 1 });
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue