diff --git a/plugins/chat/test/javascripts/components/chat-channel-archive-modal-inner-test.js b/plugins/chat/test/javascripts/components/chat-channel-archive-modal-inner-test.js
index 405d2c7aa78..02362286623 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-archive-modal-inner-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-archive-modal-inner-test.js
@@ -10,18 +10,19 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- hooks.beforeEach(function () {
- this.set("channel", fabricators.chatChannel({}));
- });
-
test("channel title is escaped in instructions correctly", async function (assert) {
- this.set("channel.title", ``);
-
- await render(
- hbs`{{chat-channel-archive-modal-inner chatChannel=channel}}`
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ title: ``,
+ })
);
- assert.ok(
+ await render(
+ hbs``
+ );
+
+ assert.true(
query(".chat-channel-archive-modal-instructions").innerHTML.includes(
"<script>someeviltitle</script>"
)
diff --git a/plugins/chat/test/javascripts/components/chat-channel-card-test.js b/plugins/chat/test/javascripts/components/chat-channel-card-test.js
index bf6240aef7c..a2f818a3127 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-card-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-card-test.js
@@ -20,39 +20,39 @@ module("Discourse Chat | Component | chat-channel-card", function (hooks) {
test("escapes channel title", async function (assert) {
this.channel.set("title", "
evil
");
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.notOk(exists(".xss"));
+ assert.false(exists(".xss"));
});
test("escapes channel description", async function (assert) {
this.channel.set("description", "evil
");
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.notOk(exists(".xss"));
+ assert.false(exists(".xss"));
});
test("Closed channel", async function (assert) {
this.channel.set("status", "closed");
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(exists(".chat-channel-card.-closed"));
+ assert.true(exists(".chat-channel-card.-closed"));
});
test("Archived channel", async function (assert) {
this.channel.set("status", "archived");
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(exists(".chat-channel-card.-archived"));
+ assert.true(exists(".chat-channel-card.-archived"));
});
test("Muted channel", async function (assert) {
this.channel.currentUserMembership.muted = true;
this.channel.currentUserMembership.following = true;
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-card__tag.-muted").textContent.trim(),
I18n.t("chat.muted")
);
@@ -60,27 +60,27 @@ module("Discourse Chat | Component | chat-channel-card", function (hooks) {
test("Joined channel", async function (assert) {
this.channel.currentUserMembership.set("following", true);
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-card__tag.-joined").textContent.trim(),
I18n.t("chat.joined")
);
- assert.ok(exists(".toggle-channel-membership-button.-leave"));
+ assert.true(exists(".toggle-channel-membership-button.-leave"));
});
test("Joinable channel", async function (assert) {
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(exists(".chat-channel-card__join-btn"));
+ assert.true(exists(".chat-channel-card__join-btn"));
});
test("Memberships count", async function (assert) {
this.channel.set("membershipsCount", 4);
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-card__members").textContent.trim(),
I18n.t("chat.channel.memberships_count", { count: 4 })
);
@@ -88,41 +88,41 @@ module("Discourse Chat | Component | chat-channel-card", function (hooks) {
test("No description", async function (assert) {
this.channel.set("description", null);
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.notOk(exists(".chat-channel-card__description"));
+ assert.false(exists(".chat-channel-card__description"));
});
test("Description", async function (assert) {
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-card__description").textContent.trim(),
this.channel.description
);
});
test("Name", async function (assert) {
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-card__name").innerText.trim(),
this.channel.title
);
});
test("Settings button", async function (assert) {
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(exists(".chat-channel-card__setting"));
+ assert.true(exists(".chat-channel-card__setting"));
});
test("Read restricted chatable", async function (assert) {
this.channel.set("chatable.read_restricted", true);
- await render(hbs`{{chat-channel-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(exists(".d-icon-lock"));
- assert.equal(
+ assert.true(exists(".d-icon-lock"));
+ assert.strictEqual(
query(".chat-channel-card").style.borderLeftColor,
"rgb(213, 99, 83)"
);
diff --git a/plugins/chat/test/javascripts/components/chat-channel-delete-modal-inner-test.js b/plugins/chat/test/javascripts/components/chat-channel-delete-modal-inner-test.js
index c860fd8b48a..da9a92c4855 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-delete-modal-inner-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-delete-modal-inner-test.js
@@ -10,18 +10,19 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- hooks.beforeEach(function () {
- this.set("channel", fabricators.chatChannel({}));
- });
-
test("channel title is escaped in instructions correctly", async function (assert) {
- this.set("channel.title", ``);
-
- await render(
- hbs`{{chat-channel-delete-modal-inner chatChannel=channel}}`
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ title: ``,
+ })
);
- assert.ok(
+ await render(
+ hbs``
+ );
+
+ assert.true(
query(".chat-channel-delete-modal-instructions").innerHTML.includes(
"<script>someeviltitle</script>"
)
diff --git a/plugins/chat/test/javascripts/components/chat-channel-leave-btn-test.js b/plugins/chat/test/javascripts/components/chat-channel-leave-btn-test.js
index 786f65b946c..d75f533bd5e 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-leave-btn-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-leave-btn-test.js
@@ -1,81 +1,62 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { click } from "@ember/test-helpers";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
+import { click, render } from "@ember/test-helpers";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import pretender from "discourse/tests/helpers/create-pretender";
import I18n from "I18n";
-import { module } from "qunit";
+import { module, test } from "qunit";
module("Discourse Chat | Component | chat-channel-leave-btn", function (hooks) {
setupRenderingTest(hooks);
- componentTest("accepts an optional onLeaveChannel callback", {
- template: hbs`{{chat-channel-leave-btn channel=channel onLeaveChannel=onLeaveChannel}}`,
+ test("accepts an optional onLeaveChannel callback", async function (assert) {
+ this.set("foo", 1);
+ this.set("onLeaveChannel", () => this.set("foo", 2));
+ this.set("channel", {
+ id: 1,
+ chatable_type: "DirectMessage",
+ chatable: {
+ users: [{ id: 1 }],
+ },
+ });
- beforeEach() {
- this.set("foo", 1);
- this.set("onLeaveChannel", () => this.set("foo", 2));
- this.set("channel", {
- id: 1,
- chatable_type: "DirectMessage",
- chatable: {
- users: [{ id: 1 }],
- },
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- pretender.post("/chat/chat_channels/:chatChannelId/unfollow", () => {
- return [200, { current_user_membership: { following: false } }, {}];
- });
- assert.equal(this.foo, 1);
+ pretender.post("/chat/chat_channels/:chatChannelId/unfollow", () => {
+ return [200, { current_user_membership: { following: false } }, {}];
+ });
+ assert.strictEqual(this.foo, 1);
- await click(".chat-channel-leave-btn");
-
- assert.equal(this.foo, 2);
- },
+ await click(".chat-channel-leave-btn");
+ assert.strictEqual(this.foo, 2);
});
- componentTest("has a specific title for direct message channel", {
- template: hbs`{{chat-channel-leave-btn channel=channel}}`,
+ test("has a specific title for direct message channel", async function (assert) {
+ this.set("channel", { chatable_type: "DirectMessage" });
- beforeEach() {
- this.set("channel", { chatable_type: "DirectMessage" });
- },
+ await render(hbs``);
- async test(assert) {
- const btn = query(".chat-channel-leave-btn");
-
- assert.equal(btn.title, I18n.t("chat.direct_messages.leave"));
- },
+ const btn = query(".chat-channel-leave-btn");
+ assert.strictEqual(btn.title, I18n.t("chat.direct_messages.leave"));
});
- componentTest("has a specific title for message channel", {
- template: hbs`{{chat-channel-leave-btn channel=channel}}`,
+ test("has a specific title for message channel", async function (assert) {
+ this.set("channel", { chatable_type: "Topic" });
- beforeEach() {
- this.set("channel", { chatable_type: "Topic" });
- },
+ await render(hbs``);
- async test(assert) {
- const btn = query(".chat-channel-leave-btn");
-
- assert.equal(btn.title, I18n.t("chat.leave"));
- },
+ const btn = query(".chat-channel-leave-btn");
+ assert.strictEqual(btn.title, I18n.t("chat.leave"));
});
- componentTest("is not visible on mobile", {
- template: hbs`{{chat-channel-leave-btn channel=channel}}`,
+ test("is not visible on mobile", async function (assert) {
+ this.site.mobileView = true;
+ this.set("channel", { chatable_type: "Topic" });
- beforeEach() {
- this.site.mobileView = true;
- this.set("channel", { chatable_type: "Topic" });
- },
+ await render(hbs``);
- async test(assert) {
- assert.notOk(exists(".chat-channel-leave-btn"));
- },
+ assert.false(exists(".chat-channel-leave-btn"));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-channel-metadata-test.js b/plugins/chat/test/javascripts/components/chat-channel-metadata-test.js
index c8c78830a42..4a8c7f391c8 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-metadata-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-metadata-test.js
@@ -35,13 +35,13 @@ module("Discourse Chat | Component | chat-channel-metadata", function (hooks) {
hbs``
);
- assert.ok(exists(".chat-channel-unread-indicator"));
+ assert.true(exists(".chat-channel-unread-indicator"));
this.unreadIndicator = false;
await render(
hbs``
);
- assert.notOk(exists(".chat-channel-unread-indicator"));
+ assert.false(exists(".chat-channel-unread-indicator"));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js b/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js
index e4b693970ea..ee8356527f2 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-preview-card-test.js
@@ -24,24 +24,24 @@ module(
});
test("channel title", async function (assert) {
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-title__name").innerText,
this.channel.title,
"it shows the channel title"
);
- assert.ok(
+ assert.true(
exists(query(".chat-channel-title__category-badge")),
"it shows the category hashtag badge"
);
});
test("channel description", async function (assert) {
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.equal(
+ assert.strictEqual(
query(".chat-channel-preview-card__description").innerText,
this.channel.description,
"the channel description is shown"
@@ -51,32 +51,32 @@ module(
test("no channel description", async function (assert) {
this.channel.set("description", null);
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.notOk(
+ assert.false(
exists(".chat-channel-preview-card__description"),
"no line is left for the channel description if there is none"
);
- assert.ok(
+ assert.true(
exists(".chat-channel-preview-card.-no-description"),
"it adds a modifier class for styling"
);
});
test("join", async function (assert) {
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
exists(".toggle-channel-membership-button.-join"),
"it shows the join channel button"
);
});
test("browse all", async function (assert) {
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
exists(".chat-channel-preview-card__browse-all"),
"it shows a link to browse all channels"
);
@@ -84,9 +84,9 @@ module(
test("closed channel", async function (assert) {
this.channel.set("status", "closed");
- await render(hbs`{{chat-channel-preview-card channel=channel}}`);
+ await render(hbs``);
- assert.notOk(
+ assert.false(
exists(".chat-channel-preview-card__join-channel-btn"),
"it does not show the join channel button"
);
diff --git a/plugins/chat/test/javascripts/components/chat-channel-title-test.js b/plugins/chat/test/javascripts/components/chat-channel-title-test.js
index 35773810692..c43838b2709 100644
--- a/plugins/chat/test/javascripts/components/chat-channel-title-test.js
+++ b/plugins/chat/test/javascripts/components/chat-channel-title-test.js
@@ -1,145 +1,115 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import fabricators from "../helpers/fabricators";
import { CHATABLE_TYPES } from "discourse/plugins/chat/discourse/models/chat-channel";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-channel-title", function (hooks) {
setupRenderingTest(hooks);
- componentTest("category channel", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("category channel", async function (assert) {
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ chatable_type: CHATABLE_TYPES.categoryChannel,
+ })
+ );
- beforeEach() {
- this.set(
- "channel",
- fabricators.chatChannel({
- chatable_type: CHATABLE_TYPES.categoryChannel,
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-channel-title__category-badge").getAttribute("style"),
- `color: #${this.channel.chatable.color}`
- );
- assert.equal(
- query(".chat-channel-title__name").innerText,
- this.channel.title
- );
- },
+ assert.strictEqual(
+ query(".chat-channel-title__category-badge").getAttribute("style"),
+ `color: #${this.channel.chatable.color}`
+ );
+ assert.strictEqual(
+ query(".chat-channel-title__name").innerText,
+ this.channel.title
+ );
});
- componentTest("category channel - escapes title", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("category channel - escapes title", async function (assert) {
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ chatable_type: CHATABLE_TYPES.categoryChannel,
+ title: "evil
",
+ })
+ );
- beforeEach() {
- this.set(
- "channel",
- fabricators.chatChannel({
- chatable_type: CHATABLE_TYPES.categoryChannel,
- title: "evil
",
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.notOk(exists(".xss"));
- },
+ assert.false(exists(".xss"));
});
- componentTest("category channel - read restricted", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("category channel - read restricted", async function (assert) {
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ chatable_type: CHATABLE_TYPES.categoryChannel,
+ chatable: { read_restricted: true },
+ })
+ );
- beforeEach() {
- this.set(
- "channel",
- fabricators.chatChannel({
- chatable_type: CHATABLE_TYPES.categoryChannel,
- chatable: { read_restricted: true },
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".d-icon-lock"));
- },
+ assert.true(exists(".d-icon-lock"));
});
- componentTest("category channel - not read restricted", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("category channel - not read restricted", async function (assert) {
+ this.set(
+ "channel",
+ fabricators.chatChannel({
+ chatable_type: CHATABLE_TYPES.categoryChannel,
+ chatable: { read_restricted: false },
+ })
+ );
- beforeEach() {
- this.set(
- "channel",
- fabricators.chatChannel({
- chatable_type: CHATABLE_TYPES.categoryChannel,
- chatable: { read_restricted: false },
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.notOk(exists(".d-icon-lock"));
- },
+ assert.false(exists(".d-icon-lock"));
});
- componentTest("direct message channel - one user", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("direct message channel - one user", async function (assert) {
+ this.set("channel", fabricators.directMessageChatChannel());
- beforeEach() {
- this.set("channel", fabricators.directMessageChatChannel());
- },
+ await render(hbs``);
- async test(assert) {
- const user = this.channel.chatable.users[0];
+ const user = this.channel.chatable.users[0];
- assert.ok(
- exists(`.chat-user-avatar-container .avatar[title="${user.username}"]`)
- );
+ assert.true(
+ exists(`.chat-user-avatar-container .avatar[title="${user.username}"]`)
+ );
- assert.equal(
- query(".chat-channel-title__name").innerText.trim(),
- user.username
- );
- },
+ assert.strictEqual(
+ query(".chat-channel-title__name").innerText.trim(),
+ user.username
+ );
});
- componentTest("direct message channel - multiple users", {
- template: hbs`{{chat-channel-title channel=channel}}`,
+ test("direct message channel - multiple users", async function (assert) {
+ const channel = fabricators.directMessageChatChannel();
- beforeEach() {
- const channel = fabricators.directMessageChatChannel();
+ channel.chatable.users.push({
+ id: 2,
+ username: "joffrey",
+ name: null,
+ avatar_template: "/letter_avatar_proxy/v3/letter/t/31188e/{size}.png",
+ });
- channel.chatable.users.push({
- id: 2,
- username: "joffrey",
- name: null,
- avatar_template: "/letter_avatar_proxy/v3/letter/t/31188e/{size}.png",
- });
+ this.set("channel", channel);
- this.set("channel", channel);
- },
+ await render(hbs``);
- async test(assert) {
- const users = this.channel.chatable.users;
-
- assert.equal(
- parseInt(
- query(".chat-channel-title__users-count").innerText.trim(),
- 10
- ),
- users.length
- );
-
- assert.equal(
- query(".chat-channel-title__name").innerText.trim(),
- users.mapBy("username").join(", ")
- );
- },
+ const users = this.channel.chatable.users;
+ assert.strictEqual(
+ parseInt(query(".chat-channel-title__users-count").innerText.trim(), 10),
+ users.length
+ );
+ assert.strictEqual(
+ query(".chat-channel-title__name").innerText.trim(),
+ users.mapBy("username").join(", ")
+ );
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-composer-dropdown-test.js b/plugins/chat/test/javascripts/components/chat-composer-dropdown-test.js
index 4a4ba9656df..18274935dae 100644
--- a/plugins/chat/test/javascripts/components/chat-composer-dropdown-test.js
+++ b/plugins/chat/test/javascripts/components/chat-composer-dropdown-test.js
@@ -1,28 +1,21 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { click } from "@ember/test-helpers";
-import { module } from "qunit";
+import { click, render } from "@ember/test-helpers";
+import { module, test } from "qunit";
module("Discourse Chat | Component | chat-composer-dropdown", function (hooks) {
setupRenderingTest(hooks);
- componentTest("buttons", {
- template: hbs`{{chat-composer-dropdown buttons=buttons}}`,
+ test("buttons", async function (assert) {
+ this.set("buttons", [{ id: "foo", icon: "times", action: () => {} }]);
- async beforeEach() {
- this.set("buttons", [{ id: "foo", icon: "times", action: () => {} }]);
- },
+ await render(hbs``);
+ await click(".chat-composer-dropdown__trigger-btn");
- async test(assert) {
- await click(".chat-composer-dropdown__trigger-btn");
-
- assert.ok(exists(".chat-composer-dropdown__item.foo"));
- assert.ok(
- exists(".chat-composer-dropdown__action-btn.foo .d-icon-times")
- );
- },
+ assert.true(exists(".chat-composer-dropdown__item.foo"));
+ assert.true(
+ exists(".chat-composer-dropdown__action-btn.foo .d-icon-times")
+ );
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-composer-inline-buttons-test.js b/plugins/chat/test/javascripts/components/chat-composer-inline-buttons-test.js
index 732a0212ea5..3933a396a28 100644
--- a/plugins/chat/test/javascripts/components/chat-composer-inline-buttons-test.js
+++ b/plugins/chat/test/javascripts/components/chat-composer-inline-buttons-test.js
@@ -1,26 +1,23 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module(
"Discourse Chat | Component | chat-composer-inline-buttons",
function (hooks) {
setupRenderingTest(hooks);
- componentTest("buttons", {
- template: hbs`{{chat-composer-inline-buttons buttons=buttons}}`,
+ test("buttons", async function (assert) {
+ this.set("buttons", [{ id: "foo", icon: "times", action: () => {} }]);
- async beforeEach() {
- this.set("buttons", [{ id: "foo", icon: "times", action: () => {} }]);
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists(".chat-composer-inline-button.foo"));
- assert.ok(exists(".chat-composer-inline-button.foo .d-icon-times"));
- },
+ assert.true(exists(".chat-composer-inline-button.foo"));
+ assert.true(exists(".chat-composer-inline-button.foo .d-icon-times"));
});
}
);
diff --git a/plugins/chat/test/javascripts/components/chat-composer-placeholder-test.js b/plugins/chat/test/javascripts/components/chat-composer-placeholder-test.js
index 76a3098ca4c..411aea8ca5a 100644
--- a/plugins/chat/test/javascripts/components/chat-composer-placeholder-test.js
+++ b/plugins/chat/test/javascripts/components/chat-composer-placeholder-test.js
@@ -1,87 +1,73 @@
-import { set } from "@ember/object";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import ChatChannel from "discourse/plugins/chat/discourse/models/chat-channel";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module(
"Discourse Chat | Component | chat-composer placeholder",
function (hooks) {
setupRenderingTest(hooks);
- componentTest("direct message to self shows Jot something down", {
- template: hbs`{{chat-composer chatChannel=chatChannel}}`,
+ test("direct message to self shows Jot something down", async function (assert) {
+ this.currentUser.set("id", 1);
+ this.set(
+ "chatChannel",
+ ChatChannel.create({
+ chatable_type: "DirectMessage",
+ chatable: {
+ users: [{ id: 1 }],
+ },
+ })
+ );
- beforeEach() {
- set(this.currentUser, "id", 1);
- this.set(
- "chatChannel",
- ChatChannel.create({
- chatable_type: "DirectMessage",
- chatable: {
- users: [{ id: 1 }],
- },
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-composer-input").placeholder,
- "Jot something down"
- );
- },
+ assert.strictEqual(
+ query(".chat-composer-input").placeholder,
+ "Jot something down"
+ );
});
- componentTest("direct message to multiple folks shows their names", {
- template: hbs`{{chat-composer chatChannel=chatChannel}}`,
+ test("direct message to multiple folks shows their names", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({
+ chatable_type: "DirectMessage",
+ chatable: {
+ users: [
+ { name: "Tomtom" },
+ { name: "Steaky" },
+ { username: "zorro" },
+ ],
+ },
+ })
+ );
- beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({
- chatable_type: "DirectMessage",
- chatable: {
- users: [
- { name: "Tomtom" },
- { name: "Steaky" },
- { username: "zorro" },
- ],
- },
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-composer-input").placeholder,
- "Chat with Tomtom, Steaky, @zorro"
- );
- },
+ assert.strictEqual(
+ query(".chat-composer-input").placeholder,
+ "Chat with Tomtom, Steaky, @zorro"
+ );
});
- componentTest("message to channel shows send message to channel name", {
- template: hbs`{{chat-composer chatChannel=chatChannel}}`,
+ test("message to channel shows send message to channel name", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({
+ chatable_type: "Category",
+ title: "just-cats",
+ })
+ );
- beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({
- chatable_type: "Category",
- title: "just-cats",
- })
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-composer-input").placeholder,
- "Chat with #just-cats"
- );
- },
+ assert.strictEqual(
+ query(".chat-composer-input").placeholder,
+ "Chat with #just-cats"
+ );
});
}
);
diff --git a/plugins/chat/test/javascripts/components/chat-composer-upload-test.js b/plugins/chat/test/javascripts/components/chat-composer-upload-test.js
index c2822af7daf..7a5d3526b2a 100644
--- a/plugins/chat/test/javascripts/components/chat-composer-upload-test.js
+++ b/plugins/chat/test/javascripts/components/chat-composer-upload-test.js
@@ -1,158 +1,132 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import I18n from "I18n";
-import { click } from "@ember/test-helpers";
-import { module } from "qunit";
+import { click, render } from "@ember/test-helpers";
+import { module, test } from "qunit";
module("Discourse Chat | Component | chat-composer-upload", function (hooks) {
setupRenderingTest(hooks);
- componentTest("file - uploading in progress", {
- template: hbs`{{chat-composer-upload upload=upload}}`,
+ test("file - uploading in progress", async function (assert) {
+ this.set("upload", {
+ progress: 50,
+ extension: ".pdf",
+ fileName: "test.pdf",
+ });
- beforeEach() {
- this.set("upload", {
- progress: 50,
- extension: ".pdf",
- fileName: "test.pdf",
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".upload-progress[value=50]"));
- assert.strictEqual(
- query(".uploading").innerText.trim(),
- I18n.t("uploading")
- );
- },
+ assert.true(exists(".upload-progress[value=50]"));
+ assert.strictEqual(
+ query(".uploading").innerText.trim(),
+ I18n.t("uploading")
+ );
});
- componentTest("image - uploading in progress", {
- template: hbs`{{chat-composer-upload upload=upload}}`,
+ test("image - uploading in progress", async function (assert) {
+ this.set("upload", {
+ extension: ".png",
+ progress: 78,
+ fileName: "test.png",
+ });
- beforeEach() {
- this.set("upload", {
- extension: ".png",
- progress: 78,
- fileName: "test.png",
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".d-icon-far-image"));
- assert.ok(exists(".upload-progress[value=78]"));
- assert.strictEqual(
- query(".uploading").innerText.trim(),
- I18n.t("uploading")
- );
- },
+ assert.true(exists(".d-icon-far-image"));
+ assert.true(exists(".upload-progress[value=78]"));
+ assert.strictEqual(
+ query(".uploading").innerText.trim(),
+ I18n.t("uploading")
+ );
});
- componentTest("image - preprocessing upload in progress", {
- template: hbs`{{chat-composer-upload upload=upload}}`,
+ test("image - preprocessing upload in progress", async function (assert) {
+ this.set("upload", {
+ extension: ".png",
+ progress: 78,
+ fileName: "test.png",
+ processing: true,
+ });
- beforeEach() {
- this.set("upload", {
- extension: ".png",
- progress: 78,
- fileName: "test.png",
- processing: true,
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.strictEqual(
- query(".processing").innerText.trim(),
- I18n.t("processing")
- );
- },
+ assert.strictEqual(
+ query(".processing").innerText.trim(),
+ I18n.t("processing")
+ );
});
- componentTest("file - upload complete", {
- template: hbs`{{chat-composer-upload isDone=true upload=upload}}`,
+ test("file - upload complete", async function (assert) {
+ this.set("upload", {
+ type: ".pdf",
+ original_filename: "some file.pdf",
+ extension: "pdf",
+ });
- beforeEach() {
- this.set("upload", {
- type: ".pdf",
- original_filename: "some file.pdf",
- extension: "pdf",
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists(".d-icon-file-alt"));
- assert.strictEqual(query(".file-name").innerText.trim(), "some file.pdf");
- assert.strictEqual(query(".extension-pill").innerText.trim(), "pdf");
- },
+ assert.true(exists(".d-icon-file-alt"));
+ assert.strictEqual(query(".file-name").innerText.trim(), "some file.pdf");
+ assert.strictEqual(query(".extension-pill").innerText.trim(), "pdf");
});
- componentTest("image - upload complete", {
- template: hbs`{{chat-composer-upload isDone=true upload=upload}}`,
+ test("image - upload complete", async function (assert) {
+ this.set("upload", {
+ type: ".png",
+ original_filename: "bar_image.png",
+ extension: "png",
+ short_path: "/images/avatar.png",
+ });
- beforeEach() {
- this.set("upload", {
- type: ".png",
- original_filename: "bar_image.png",
- extension: "png",
- short_path: "/images/avatar.png",
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists("img.preview-img[src='/images/avatar.png']"));
- assert.strictEqual(query(".file-name").innerText.trim(), "bar_image.png");
- assert.strictEqual(query(".extension-pill").innerText.trim(), "png");
- },
+ assert.true(exists("img.preview-img[src='/images/avatar.png']"));
+ assert.strictEqual(query(".file-name").innerText.trim(), "bar_image.png");
+ assert.strictEqual(query(".extension-pill").innerText.trim(), "png");
});
- componentTest("removing completed upload", {
- template: hbs`{{chat-composer-upload isDone=true upload=upload onCancel=(action "removeUpload" upload)}}`,
+ test("removing completed upload", async function (assert) {
+ this.set("uploadRemoved", false);
+ this.set("removeUpload", () => {
+ this.set("uploadRemoved", true);
+ });
+ this.set("upload", {
+ type: ".png",
+ original_filename: "bar_image.png",
+ extension: "png",
+ short_path: "/images/avatar.png",
+ });
- beforeEach() {
- this.set("uploadRemoved", false);
- this.set("actions", {
- removeUpload: () => {
- this.set("uploadRemoved", true);
- },
- });
- this.set("upload", {
- type: ".png",
- original_filename: "bar_image.png",
- extension: "png",
- short_path: "/images/avatar.png",
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await click(".remove-upload");
- assert.strictEqual(this.uploadRemoved, true);
- },
+ await click(".remove-upload");
+ assert.strictEqual(this.uploadRemoved, true);
});
- componentTest("cancelling in progress upload", {
- template: hbs`{{chat-composer-upload upload=upload onCancel=(action "removeUpload" upload)}}`,
+ test("cancelling in progress upload", async function (assert) {
+ this.set("uploadRemoved", false);
+ this.set("removeUpload", () => {
+ this.set("uploadRemoved", true);
+ });
+ this.set("upload", {
+ type: ".png",
+ original_filename: "bar_image.png",
+ extension: "png",
+ short_path: "/images/avatar.png",
+ });
- beforeEach() {
- this.set("uploadRemoved", false);
- this.set("actions", {
- removeUpload: () => {
- this.set("uploadRemoved", true);
- },
- });
- this.set("upload", {
- type: ".png",
- original_filename: "bar_image.png",
- extension: "png",
- short_path: "/images/avatar.png",
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await click(".remove-upload");
- assert.strictEqual(this.uploadRemoved, true);
- },
+ await click(".remove-upload");
+ assert.strictEqual(this.uploadRemoved, true);
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-composer-uploads-test.js b/plugins/chat/test/javascripts/components/chat-composer-uploads-test.js
index 1cfceea4bc4..b256887fff8 100644
--- a/plugins/chat/test/javascripts/components/chat-composer-uploads-test.js
+++ b/plugins/chat/test/javascripts/components/chat-composer-uploads-test.js
@@ -1,6 +1,4 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import pretender from "discourse/tests/helpers/create-pretender";
import {
count,
@@ -8,8 +6,8 @@ import {
exists,
} from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { click, settled, waitFor } from "@ember/test-helpers";
-import { module } from "qunit";
+import { click, render, settled, waitFor } from "@ember/test-helpers";
+import { module, test } from "qunit";
import { run } from "@ember/runloop";
const fakeUpload = {
@@ -48,116 +46,107 @@ function setupUploadPretender() {
module("Discourse Chat | Component | chat-composer-uploads", function (hooks) {
setupRenderingTest(hooks);
- componentTest(
- "loading uploads from an outside source (e.g. draft or editing message)",
- {
- template: hbs`{{chat-composer-uploads fileUploadElementId="chat-widget-uploader"}}`,
+ test("loading uploads from an outside source (e.g. draft or editing message)", async function (assert) {
+ await render(hbs`
+
+ `);
- async test(assert) {
- this.appEvents = this.container.lookup("service:appEvents");
- this.appEvents.trigger("chat-composer:load-uploads", [fakeUpload]);
- await settled();
+ this.appEvents = this.container.lookup("service:appEvents");
+ this.appEvents.trigger("chat-composer:load-uploads", [fakeUpload]);
+ await settled();
- assert.strictEqual(count(".chat-composer-upload"), 1);
- assert.strictEqual(exists(".chat-composer-upload"), true);
- },
- }
- );
-
- componentTest("upload starts and completes", {
- template: hbs`{{chat-composer-uploads fileUploadElementId="chat-widget-uploader" onUploadChanged=onUploadChanged}}`,
-
- beforeEach() {
- setupUploadPretender();
- this.set("changedUploads", null);
- this.set("onUploadChanged", (uploads) => {
- this.set("changedUploads", uploads);
- });
- },
-
- async test(assert) {
- const done = assert.async();
- this.appEvents = this.container.lookup("service:appEvents");
- this.appEvents.on(
- "upload-mixin:chat-composer-uploader:upload-success",
- (fileName, upload) => {
- assert.strictEqual(fileName, "avatar.png");
- assert.deepEqual(upload, mockUploadResponse);
- done();
- }
- );
-
- this.appEvents.trigger(
- "upload-mixin:chat-composer-uploader:add-files",
- createFile("avatar.png")
- );
-
- await waitFor(".chat-composer-upload");
- assert.strictEqual(count(".chat-composer-upload"), 1);
- },
+ assert.strictEqual(count(".chat-composer-upload"), 1);
+ assert.strictEqual(exists(".chat-composer-upload"), true);
});
- componentTest("removing a completed upload", {
- template: hbs`{{chat-composer-uploads fileUploadElementId="chat-widget-uploader" onUploadChanged=onUploadChanged}}`,
+ test("upload starts and completes", async function (assert) {
+ setupUploadPretender();
+ this.set("changedUploads", null);
+ this.set("onUploadChanged", (uploads) => {
+ this.set("changedUploads", uploads);
+ });
- beforeEach() {
- this.set("changedUploads", null);
- this.set("onUploadChanged", (uploads) => {
- this.set("changedUploads", uploads);
- });
- },
+ await render(hbs`
+
+ `);
- async test(assert) {
- this.appEvents = this.container.lookup("service:appEvents");
- run(() =>
- this.appEvents.trigger("chat-composer:load-uploads", [fakeUpload])
- );
- assert.strictEqual(count(".chat-composer-upload"), 1);
+ const done = assert.async();
+ this.appEvents = this.container.lookup("service:appEvents");
+ this.appEvents.on(
+ "upload-mixin:chat-composer-uploader:upload-success",
+ (fileName, upload) => {
+ assert.strictEqual(fileName, "avatar.png");
+ assert.deepEqual(upload, mockUploadResponse);
+ done();
+ }
+ );
- await click(".remove-upload");
- assert.strictEqual(count(".chat-composer-upload"), 0);
- },
+ this.appEvents.trigger(
+ "upload-mixin:chat-composer-uploader:add-files",
+ createFile("avatar.png")
+ );
+
+ await waitFor(".chat-composer-upload");
+ assert.strictEqual(count(".chat-composer-upload"), 1);
});
- componentTest("cancelling in progress upload", {
- template: hbs`{{chat-composer-uploads fileUploadElementId="chat-widget-uploader" onUploadChanged=onUploadChanged}}`,
+ test("removing a completed upload", async function (assert) {
+ this.set("changedUploads", null);
+ this.set("onUploadChanged", (uploads) => {
+ this.set("changedUploads", uploads);
+ });
- beforeEach() {
- setupUploadPretender();
+ await render(hbs`
+
+ `);
- this.set("changedUploads", null);
- this.set("onUploadChanged", (uploads) => {
- this.set("changedUploads", uploads);
- });
- },
+ this.appEvents = this.container.lookup("service:appEvents");
+ run(() =>
+ this.appEvents.trigger("chat-composer:load-uploads", [fakeUpload])
+ );
+ assert.strictEqual(count(".chat-composer-upload"), 1);
- async test(assert) {
- const image = createFile("avatar.png");
- const done = assert.async();
- this.appEvents = this.container.lookup("service:appEvents");
+ await click(".remove-upload");
+ assert.strictEqual(count(".chat-composer-upload"), 0);
+ });
- this.appEvents.on(
- `upload-mixin:chat-composer-uploader:upload-cancelled`,
- (fileId) => {
- assert.strictEqual(
- fileId.includes("uppy-avatar/"),
- true,
- "upload was cancelled"
- );
- done();
- }
- );
+ test("cancelling in progress upload", async function (assert) {
+ setupUploadPretender();
- this.appEvents.trigger(
- "upload-mixin:chat-composer-uploader:add-files",
- image
- );
+ this.set("changedUploads", null);
+ this.set("onUploadChanged", (uploads) => {
+ this.set("changedUploads", uploads);
+ });
- await waitFor(".chat-composer-upload");
- assert.strictEqual(count(".chat-composer-upload"), 1);
+ await render(hbs`
+
+ `);
- await click(".remove-upload");
- assert.strictEqual(count(".chat-composer-upload"), 0);
- },
+ const image = createFile("avatar.png");
+ const done = assert.async();
+ this.appEvents = this.container.lookup("service:appEvents");
+
+ this.appEvents.on(
+ `upload-mixin:chat-composer-uploader:upload-cancelled`,
+ (fileId) => {
+ assert.strictEqual(
+ fileId.includes("uppy-avatar/"),
+ true,
+ "upload was cancelled"
+ );
+ done();
+ }
+ );
+
+ this.appEvents.trigger(
+ "upload-mixin:chat-composer-uploader:add-files",
+ image
+ );
+
+ await waitFor(".chat-composer-upload");
+ assert.strictEqual(count(".chat-composer-upload"), 1);
+
+ await click(".remove-upload");
+ assert.strictEqual(count(".chat-composer-upload"), 0);
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-emoji-avatar-test.js b/plugins/chat/test/javascripts/components/chat-emoji-avatar-test.js
index 20b4e540168..e0b4396157e 100644
--- a/plugins/chat/test/javascripts/components/chat-emoji-avatar-test.js
+++ b/plugins/chat/test/javascripts/components/chat-emoji-avatar-test.js
@@ -1,26 +1,21 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-emoji-avatar", function (hooks) {
setupRenderingTest(hooks);
- componentTest("uses an emoji as avatar", {
- template: hbs`{{chat-emoji-avatar emoji=emoji}}`,
+ test("uses an emoji as avatar", async function (assert) {
+ this.set("emoji", ":otter:");
- async beforeEach() {
- this.set("emoji", ":otter:");
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(
- exists(
- `.chat-emoji-avatar .chat-emoji-avatar-container .emoji[title=otter]`
- )
- );
- },
+ assert.true(
+ exists(
+ `.chat-emoji-avatar .chat-emoji-avatar-container .emoji[title=otter]`
+ )
+ );
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-emoji-picker-test.js b/plugins/chat/test/javascripts/components/chat-emoji-picker-test.js
index ff22704010c..134fdf8f147 100644
--- a/plugins/chat/test/javascripts/components/chat-emoji-picker-test.js
+++ b/plugins/chat/test/javascripts/components/chat-emoji-picker-test.js
@@ -83,21 +83,21 @@ module("Discourse Chat | Component | chat-emoji-picker", function (hooks) {
test("When displaying navigation", async function (assert) {
await render(hbs``);
- assert.ok(
+ assert.true(
exists(
`.chat-emoji-picker__section-btn.active[data-section="favorites"]`
),
"it renders first section as active"
);
- assert.ok(
+ assert.true(
exists(
`.chat-emoji-picker__section-btn[data-section="smileys_&_emotion"]`
)
);
- assert.ok(
+ assert.true(
exists(`.chat-emoji-picker__section-btn[data-section="people_&_body"]`)
);
- assert.ok(
+ assert.true(
exists(`.chat-emoji-picker__section-btn[data-section="objects"]`)
);
});
@@ -107,11 +107,11 @@ module("Discourse Chat | Component | chat-emoji-picker", function (hooks) {
await click(".chat-emoji-picker__fitzpatrick-modifier-btn.current.t1");
await click(".chat-emoji-picker__fitzpatrick-modifier-btn.t6");
- assert.ok(
+ assert.true(
exists(`img[src="/images/emoji/twitter/raised_hands/6.png"]`),
"it applies the tone to emojis"
);
- assert.ok(
+ assert.true(
exists(".chat-emoji-picker__fitzpatrick-modifier-btn.current.t6"),
"it changes the current scale to t6"
);
@@ -127,7 +127,7 @@ module("Discourse Chat | Component | chat-emoji-picker", function (hooks) {
await click(`.chat-emoji-picker__section-btn[data-section="objects"]`);
- assert.ok(
+ assert.true(
document.querySelector("#ember-testing-container").scrollTop > 0,
"it scrolls to the section"
);
@@ -142,21 +142,21 @@ module("Discourse Chat | Component | chat-emoji-picker", function (hooks) {
1,
"it filters the emojis list"
);
- assert.ok(
+ assert.true(
exists('.chat-emoji-picker__sections > img[alt="grinning"]'),
"it filters the correct emoji"
);
await fillIn(".dc-filter-input", "Grinning");
- assert.ok(
+ assert.true(
exists('.chat-emoji-picker__sections > img[alt="grinning"]'),
"it is case insensitive"
);
await fillIn(".dc-filter-input", "smiley_cat");
- assert.ok(
+ assert.true(
exists('.chat-emoji-picker__sections > img[alt="grinning"]'),
"it filters the correct emoji using search alias"
);
@@ -193,7 +193,7 @@ module("Discourse Chat | Component | chat-emoji-picker", function (hooks) {
test("When opening the picker", async function (assert) {
await render(hbs``);
- assert.ok(document.activeElement.classList.contains("dc-filter-input"));
+ assert.true(document.activeElement.classList.contains("dc-filter-input"));
});
test("When hovering an emoji", async function (assert) {
diff --git a/plugins/chat/test/javascripts/components/chat-live-pane-test.js b/plugins/chat/test/javascripts/components/chat-live-pane-test.js
index a02292651ae..244439eb38e 100644
--- a/plugins/chat/test/javascripts/components/chat-live-pane-test.js
+++ b/plugins/chat/test/javascripts/components/chat-live-pane-test.js
@@ -30,15 +30,15 @@ module("Discourse Chat | Component | chat-live-pane", function (hooks) {
);
await render(
- hbs`{{chat-live-pane loadingMorePast=true chat=chat chatChannel=channel}}`
+ hbs``
);
- assert.ok(exists(".chat-skeleton"));
+ assert.true(exists(".chat-skeleton"));
await render(
- hbs`{{chat-live-pane loadingMoreFuture=true chat=chat chatChannel=channel}}`
+ hbs``
);
- assert.ok(exists(".chat-skeleton"));
+ assert.true(exists(".chat-skeleton"));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-message-avatar-test.js b/plugins/chat/test/javascripts/components/chat-message-avatar-test.js
index 04430313b2c..56244f9803b 100644
--- a/plugins/chat/test/javascripts/components/chat-message-avatar-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-avatar-test.js
@@ -1,34 +1,25 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import hbs from "htmlbars-inline-precompile";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-message-avatar", function (hooks) {
setupRenderingTest(hooks);
- componentTest("chat_webhook_event", {
- template: hbs`{{chat-message-avatar message=message}}`,
+ test("chat_webhook_event", async function (assert) {
+ this.set("message", { chat_webhook_event: { emoji: ":heart:" } });
- beforeEach() {
- this.set("message", { chat_webhook_event: { emoji: ":heart:" } });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(query(".chat-emoji-avatar .emoji").title, "heart");
- },
+ assert.strictEqual(query(".chat-emoji-avatar .emoji").title, "heart");
});
- componentTest("user", {
- template: hbs`{{chat-message-avatar message=message}}`,
+ test("user", async function (assert) {
+ this.set("message", { user: { username: "discobot" } });
- beforeEach() {
- this.set("message", { user: { username: "discobot" } });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists('.chat-user-avatar [data-user-card="discobot"]'));
- },
+ assert.true(exists('.chat-user-avatar [data-user-card="discobot"]'));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-message-collapser-test.js b/plugins/chat/test/javascripts/components/chat-message-collapser-test.js
index cb2be4c008b..56be03b199c 100644
--- a/plugins/chat/test/javascripts/components/chat-message-collapser-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-collapser-test.js
@@ -1,6 +1,4 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { click, render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
import {
@@ -57,9 +55,9 @@ module("Discourse Chat | Component | chat message collapser", function (hooks) {
test("escapes uploads header", async function (assert) {
this.set("uploads", [{ original_filename: evilString }]);
- await render(hbs`{{chat-message-collapser uploads=uploads}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
query(".chat-message-collapser-link-small").innerHTML.includes(
evilStringEscaped
)
@@ -74,115 +72,109 @@ module(
test("escapes youtube header", async function (assert) {
this.set("cooked", youtubeCooked.replace("ytId1", evilString));
- await render(hbs`{{chat-message-collapser cooked=cooked}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
query(".chat-message-collapser-link").href.includes(
"%3Cscript%3Esomeeviltitle%3C/script%3E"
)
);
});
- componentTest("shows youtube link in header", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows youtube link in header", async function (assert) {
+ this.set("cooked", youtubeCooked);
- beforeEach() {
- this.set("cooked", youtubeCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const link = document.querySelectorAll(".chat-message-collapser-link");
+ const link = queryAll(".chat-message-collapser-link");
- assert.equal(link.length, 2, "two youtube links rendered");
- assert.strictEqual(
- link[0].href,
- "https://www.youtube.com/watch?v=ytId1"
- );
- assert.strictEqual(
- link[1].href,
- "https://www.youtube.com/watch?v=ytId2"
- );
- },
+ assert.strictEqual(link.length, 2, "two youtube links rendered");
+ assert.strictEqual(link[0].href, "https://www.youtube.com/watch?v=ytId1");
+ assert.strictEqual(link[1].href, "https://www.youtube.com/watch?v=ytId2");
});
- componentTest("shows all user written text", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows all user written text", async function (assert) {
+ youtubeCooked.youtubeid;
+ this.set("cooked", youtubeCooked);
- beforeEach() {
- youtubeCooked.youtubeid;
- this.set("cooked", youtubeCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const text = document.querySelectorAll(".chat-message-collapser p");
+ const text = queryAll(".chat-message-collapser p");
- assert.equal(text.length, 3, "shows all written text");
- assert.strictEqual(
- text[0].innerText,
- "written text",
- "first line of written text"
- );
- assert.strictEqual(
- text[1].innerText,
- "more written text",
- "third line of written text"
- );
- assert.strictEqual(
- text[2].innerText,
- "and even more",
- "fifth line of written text"
- );
- },
+ assert.strictEqual(text.length, 3, "shows all written text");
+ assert.strictEqual(
+ text[0].innerText,
+ "written text",
+ "first line of written text"
+ );
+ assert.strictEqual(
+ text[1].innerText,
+ "more written text",
+ "third line of written text"
+ );
+ assert.strictEqual(
+ text[2].innerText,
+ "and even more",
+ "fifth line of written text"
+ );
});
- componentTest("collapses and expands cooked youtube", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("collapses and expands cooked youtube", async function (assert) {
+ this.set("cooked", youtubeCooked);
- beforeEach() {
- this.set("cooked", youtubeCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const youtubeDivs = document.querySelectorAll(".onebox");
+ const youtubeDivs = queryAll(".onebox");
- assert.equal(youtubeDivs.length, 2, "two youtube previews rendered");
+ assert.strictEqual(
+ youtubeDivs.length,
+ 2,
+ "two youtube previews rendered"
+ );
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[0],
- "close first preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[0],
+ "close first preview"
+ );
- assert.notOk(
- visible(".onebox[data-youtube-id='ytId1']"),
- "first youtube preview hidden"
- );
- assert.ok(
- visible(".onebox[data-youtube-id='ytId2']"),
- "second youtube preview still visible"
- );
+ assert.false(
+ visible(".onebox[data-youtube-id='ytId1']"),
+ "first youtube preview hidden"
+ );
+ assert.true(
+ visible(".onebox[data-youtube-id='ytId2']"),
+ "second youtube preview still visible"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(youtubeDivs.length, 2, "two youtube previews rendered");
+ assert.strictEqual(
+ youtubeDivs.length,
+ 2,
+ "two youtube previews rendered"
+ );
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[1],
- "close second preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[1],
+ "close second preview"
+ );
- assert.ok(
- visible(".onebox[data-youtube-id='ytId1']"),
- "first youtube preview still visible"
- );
- assert.notOk(
- visible(".onebox[data-youtube-id='ytId2']"),
- "second youtube preview hidden"
- );
+ assert.true(
+ visible(".onebox[data-youtube-id='ytId1']"),
+ "first youtube preview still visible"
+ );
+ assert.false(
+ visible(".onebox[data-youtube-id='ytId2']"),
+ "second youtube preview hidden"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(youtubeDivs.length, 2, "two youtube previews rendered");
- },
+ assert.strictEqual(
+ youtubeDivs.length,
+ 2,
+ "two youtube previews rendered"
+ );
});
}
);
@@ -193,65 +185,57 @@ module(
setupRenderingTest(hooks);
const imageTextCooked = "A picture of Tomtom
";
- componentTest("shows filename for one image", {
- template: hbs`{{chat-message-collapser cooked=cooked uploads=uploads}}`,
+ test("shows filename for one image", async function (assert) {
+ this.set("cooked", imageTextCooked);
+ this.set("uploads", [{ original_filename: "tomtom.jpeg" }]);
- beforeEach() {
- this.set("cooked", imageTextCooked);
- this.set("uploads", [{ original_filename: "tomtom.jpeg" }]);
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(
- query(".chat-message-collapser-link-small").innerText.includes(
- "tomtom.jpeg"
- )
- );
- },
+ assert.true(
+ query(".chat-message-collapser-link-small").innerText.includes(
+ "tomtom.jpeg"
+ )
+ );
});
- componentTest("shows number of files for multiple images", {
- template: hbs`{{chat-message-collapser cooked=cooked uploads=uploads}}`,
+ test("shows number of files for multiple images", async function (assert) {
+ this.set("cooked", imageTextCooked);
+ this.set("uploads", [{}, {}]);
- beforeEach() {
- this.set("cooked", imageTextCooked);
- this.set("uploads", [{}, {}]);
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(
- query(".chat-message-collapser-link-small").innerText.includes(
- "2 files"
- )
- );
- },
+ assert.true(
+ query(".chat-message-collapser-link-small").innerText.includes(
+ "2 files"
+ )
+ );
});
- componentTest("collapses and expands images", {
- template: hbs`{{chat-message-collapser cooked=cooked uploads=uploads}}`,
+ test("collapses and expands images", async function (assert) {
+ this.set("cooked", imageTextCooked);
+ this.set("uploads", [{ original_filename: "tomtom.png" }]);
- beforeEach() {
- this.set("cooked", imageTextCooked);
- this.set("uploads", [{ original_filename: "tomtom.png" }]);
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const uploads = ".chat-uploads";
- const chatImageUpload = ".chat-img-upload";
+ const uploads = ".chat-uploads";
+ const chatImageUpload = ".chat-img-upload";
- assert.ok(visible(uploads));
- assert.ok(visible(chatImageUpload));
+ assert.true(visible(uploads));
+ assert.true(visible(chatImageUpload));
- await click(".chat-message-collapser-opened");
+ await click(".chat-message-collapser-opened");
+ assert.false(visible(uploads));
+ assert.false(visible(chatImageUpload));
- assert.notOk(visible(uploads));
- assert.notOk(visible(chatImageUpload));
-
- await click(".chat-message-collapser-closed");
-
- assert.ok(visible(uploads));
- assert.ok(visible(chatImageUpload));
- },
+ await click(".chat-message-collapser-closed");
+ assert.true(visible(uploads));
+ assert.true(visible(chatImageUpload));
});
}
);
@@ -261,93 +245,79 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- componentTest("shows links for animated image", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows links for animated image", async function (assert) {
+ this.set("cooked", animatedImageCooked);
- beforeEach() {
- this.set("cooked", animatedImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const links = document.querySelectorAll(
- "a.chat-message-collapser-link-small"
- );
+ const links = queryAll("a.chat-message-collapser-link-small");
- assert.ok(links[0].innerText.trim().includes("avatar.png"));
- assert.ok(links[0].href.includes("avatar.png"));
+ assert.true(links[0].innerText.trim().includes("avatar.png"));
+ assert.true(links[0].href.includes("avatar.png"));
- assert.ok(
- links[1].innerText.trim().includes("d-logo-sketch-small.png")
- );
- assert.ok(links[1].href.includes("d-logo-sketch-small.png"));
- },
+ assert.true(
+ links[1].innerText.trim().includes("d-logo-sketch-small.png")
+ );
+ assert.true(links[1].href.includes("d-logo-sketch-small.png"));
});
- componentTest("shows all user written text", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows all user written text", async function (assert) {
+ this.set("cooked", animatedImageCooked);
- beforeEach() {
- this.set("cooked", animatedImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const text = document.querySelectorAll(".chat-message-collapser p");
+ const text = queryAll(".chat-message-collapser p");
- assert.equal(text.length, 5, "shows all written text");
- assert.strictEqual(text[0].innerText, "written text");
- assert.strictEqual(text[2].innerText, "more written text");
- assert.strictEqual(text[4].innerText, "and even more");
- },
+ assert.strictEqual(text.length, 5, "shows all written text");
+ assert.strictEqual(text[0].innerText, "written text");
+ assert.strictEqual(text[2].innerText, "more written text");
+ assert.strictEqual(text[4].innerText, "and even more");
});
- componentTest("collapses and expands animated image onebox", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("collapses and expands animated image onebox", async function (assert) {
+ this.set("cooked", animatedImageCooked);
- beforeEach() {
- this.set("cooked", animatedImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const animatedOneboxes = document.querySelectorAll(".animated.onebox");
+ const animatedOneboxes = queryAll(".animated.onebox");
- assert.equal(animatedOneboxes.length, 2, "two oneboxes rendered");
+ assert.strictEqual(animatedOneboxes.length, 2, "two oneboxes rendered");
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[0],
- "close first preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[0],
+ "close first preview"
+ );
- assert.notOk(
- visible(".onebox[src='/images/avatar.png']"),
- "first onebox hidden"
- );
- assert.ok(
- visible(".onebox[src='/images/d-logo-sketch-small.png']"),
- "second onebox still visible"
- );
+ assert.false(
+ visible(".onebox[src='/images/avatar.png']"),
+ "first onebox hidden"
+ );
+ assert.true(
+ visible(".onebox[src='/images/d-logo-sketch-small.png']"),
+ "second onebox still visible"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(animatedOneboxes.length, 2, "two oneboxes rendered");
+ assert.strictEqual(animatedOneboxes.length, 2, "two oneboxes rendered");
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[1],
- "close second preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[1],
+ "close second preview"
+ );
- assert.ok(
- visible(".onebox[src='/images/avatar.png']"),
- "first onebox still visible"
- );
- assert.notOk(
- visible(".onebox[src='/images/d-logo-sketch-small.png']"),
- "second onebox hidden"
- );
+ assert.true(
+ visible(".onebox[src='/images/avatar.png']"),
+ "first onebox still visible"
+ );
+ assert.false(
+ visible(".onebox[src='/images/d-logo-sketch-small.png']"),
+ "second onebox hidden"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(animatedOneboxes.length, 2, "two oneboxes rendered");
- },
+ assert.strictEqual(animatedOneboxes.length, 2, "two oneboxes rendered");
});
}
);
@@ -357,91 +327,77 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- componentTest("shows links for animated image", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows links for animated image", async function (assert) {
+ this.set("cooked", externalImageCooked);
- beforeEach() {
- this.set("cooked", externalImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const links = document.querySelectorAll(
- "a.chat-message-collapser-link-small"
- );
+ const links = queryAll("a.chat-message-collapser-link-small");
- assert.ok(links[0].innerText.trim().includes("http://cat1.com"));
- assert.ok(links[0].href.includes("http://cat1.com"));
+ assert.true(links[0].innerText.trim().includes("http://cat1.com"));
+ assert.true(links[0].href.includes("http://cat1.com"));
- assert.ok(links[1].innerText.trim().includes("http://cat2.com"));
- assert.ok(links[1].href.includes("http://cat2.com"));
- },
+ assert.true(links[1].innerText.trim().includes("http://cat2.com"));
+ assert.true(links[1].href.includes("http://cat2.com"));
});
- componentTest("shows all user written text", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows all user written text", async function (assert) {
+ this.set("cooked", externalImageCooked);
- beforeEach() {
- this.set("cooked", externalImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const text = document.querySelectorAll(".chat-message-collapser p");
+ const text = queryAll(".chat-message-collapser p");
- assert.equal(text.length, 5, "shows all written text");
- assert.strictEqual(text[0].innerText, "written text");
- assert.strictEqual(text[2].innerText, "more written text");
- assert.strictEqual(text[4].innerText, "and even more");
- },
+ assert.strictEqual(text.length, 5, "shows all written text");
+ assert.strictEqual(text[0].innerText, "written text");
+ assert.strictEqual(text[2].innerText, "more written text");
+ assert.strictEqual(text[4].innerText, "and even more");
});
- componentTest("collapses and expands image oneboxes", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("collapses and expands image oneboxes", async function (assert) {
+ this.set("cooked", externalImageCooked);
- beforeEach() {
- this.set("cooked", externalImageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const imageOneboxes = document.querySelectorAll(".onebox");
+ const imageOneboxes = queryAll(".onebox");
- assert.equal(imageOneboxes.length, 2, "two oneboxes rendered");
+ assert.strictEqual(imageOneboxes.length, 2, "two oneboxes rendered");
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[0],
- "close first preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[0],
+ "close first preview"
+ );
- assert.notOk(
- visible(".onebox[href='http://cat1.com']"),
- "first onebox hidden"
- );
- assert.ok(
- visible(".onebox[href='http://cat2.com']"),
- "second onebox still visible"
- );
+ assert.false(
+ visible(".onebox[href='http://cat1.com']"),
+ "first onebox hidden"
+ );
+ assert.true(
+ visible(".onebox[href='http://cat2.com']"),
+ "second onebox still visible"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(imageOneboxes.length, 2, "two oneboxes rendered");
+ assert.strictEqual(imageOneboxes.length, 2, "two oneboxes rendered");
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[1],
- "close second preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[1],
+ "close second preview"
+ );
- assert.ok(
- visible(".onebox[href='http://cat1.com']"),
- "first onebox still visible"
- );
- assert.notOk(
- visible(".onebox[href='http://cat2.com']"),
- "second onebox hidden"
- );
+ assert.true(
+ visible(".onebox[href='http://cat1.com']"),
+ "first onebox still visible"
+ );
+ assert.false(
+ visible(".onebox[href='http://cat2.com']"),
+ "second onebox hidden"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(imageOneboxes.length, 2, "two oneboxes rendered");
- },
+ assert.strictEqual(imageOneboxes.length, 2, "two oneboxes rendered");
});
}
);
@@ -458,129 +414,107 @@ module(
.replace("shows alt", evilString)
.replace("/images/d-logo-sketch-small.png", evilString)
);
- await render(hbs`{{chat-message-collapser cooked=cooked}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
queryAll(".chat-message-collapser-link-small")[0].innerHTML.includes(
evilStringEscaped
)
);
- assert.ok(
+ assert.true(
queryAll(".chat-message-collapser-link-small")[1].innerHTML.includes(
"%3Cscript%3Esomeeviltitle%3C/script%3E"
)
);
});
- componentTest("shows alt or links (if no alt) for linked image", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows alt or links (if no alt) for linked image", async function (assert) {
+ this.set("cooked", imageCooked);
- beforeEach() {
- this.set("cooked", imageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const links = document.querySelectorAll(
- "a.chat-message-collapser-link-small"
- );
+ const links = queryAll("a.chat-message-collapser-link-small");
- assert.ok(links[0].innerText.trim().includes("shows alt"));
- assert.ok(links[0].href.includes("/images/avatar.png"));
+ assert.true(links[0].innerText.trim().includes("shows alt"));
+ assert.true(links[0].href.includes("/images/avatar.png"));
- assert.ok(
- links[1].innerText.trim().includes("/images/d-logo-sketch-small.png")
- );
- assert.ok(links[1].href.includes("/images/d-logo-sketch-small.png"));
- },
+ assert.true(
+ links[1].innerText.trim().includes("/images/d-logo-sketch-small.png")
+ );
+ assert.true(links[1].href.includes("/images/d-logo-sketch-small.png"));
});
- componentTest("shows all user written text", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows all user written text", async function (assert) {
+ this.set("cooked", imageCooked);
- beforeEach() {
- this.set("cooked", imageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const text = document.querySelectorAll(".chat-message-collapser p");
+ const text = queryAll(".chat-message-collapser p");
- assert.equal(text.length, 6, "shows all written text");
- assert.strictEqual(text[0].innerText, "written text");
- assert.strictEqual(text[2].innerText, "more written text");
- assert.strictEqual(text[4].innerText, "and even more");
- },
+ assert.strictEqual(text.length, 6, "shows all written text");
+ assert.strictEqual(text[0].innerText, "written text");
+ assert.strictEqual(text[2].innerText, "more written text");
+ assert.strictEqual(text[4].innerText, "and even more");
});
- componentTest("collapses and expands images", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("collapses and expands images", async function (assert) {
+ this.set("cooked", imageCooked);
- beforeEach() {
- this.set("cooked", imageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const images = document.querySelectorAll("img");
+ const images = queryAll("img");
- assert.equal(images.length, 3);
+ assert.strictEqual(images.length, 3);
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[0],
- "close first preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[0],
+ "close first preview"
+ );
- assert.notOk(
- visible("img[src='/images/avatar.png']"),
- "first image hidden"
- );
- assert.ok(
- visible("img[src='/images/d-logo-sketch-small.png']"),
- "second image still visible"
- );
+ assert.false(
+ visible("img[src='/images/avatar.png']"),
+ "first image hidden"
+ );
+ assert.true(
+ visible("img[src='/images/d-logo-sketch-small.png']"),
+ "second image still visible"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(images.length, 3);
+ assert.strictEqual(images.length, 3);
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[1],
- "close second preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[1],
+ "close second preview"
+ );
- assert.ok(
- visible("img[src='/images/avatar.png']"),
- "first image still visible"
- );
- assert.notOk(
- visible("img[src='/images/d-logo-sketch-small.png']"),
- "second image hidden"
- );
+ assert.true(
+ visible("img[src='/images/avatar.png']"),
+ "first image still visible"
+ );
+ assert.false(
+ visible("img[src='/images/d-logo-sketch-small.png']"),
+ "second image hidden"
+ );
- await click(".chat-message-collapser-closed");
+ await click(".chat-message-collapser-closed");
- assert.equal(images.length, 3);
- },
+ assert.strictEqual(images.length, 3);
});
- componentTest("does not show collapser for emoji images", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("does not show collapser for emoji images", async function (assert) {
+ this.set("cooked", imageCooked);
- beforeEach() {
- this.set("cooked", imageCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const links = document.querySelectorAll(
- "a.chat-message-collapser-link-small"
- );
- const images = document.querySelectorAll("img");
- const collapser = document.querySelectorAll(
- ".chat-message-collapser-opened"
- );
+ const links = queryAll("a.chat-message-collapser-link-small");
+ const images = queryAll("img");
+ const collapser = queryAll(".chat-message-collapser-opened");
- assert.equal(links.length, 2);
- assert.equal(images.length, 3, "shows images and emoji");
- assert.equal(collapser.length, 2);
- },
+ assert.strictEqual(links.length, 2);
+ assert.strictEqual(images.length, 3, "shows images and emoji");
+ assert.strictEqual(collapser.length, 2);
});
}
);
@@ -597,9 +531,9 @@ module(
.replace("https://imgur.com/gallery/yyVx5lJ", evilString)
.replace("Le tomtom album", evilString)
);
- await render(hbs`{{chat-message-collapser cooked=cooked}}`);
+ await render(hbs``);
- assert.ok(
+ assert.true(
query(".chat-message-collapser-link-small").href.includes(
"%3Cscript%3Esomeeviltitle%3C/script%3E"
)
@@ -610,71 +544,53 @@ module(
);
});
- componentTest("removes album title overlay", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("removes album title overlay", async function (assert) {
+ this.set("cooked", galleryCooked);
- beforeEach() {
- this.set("cooked", galleryCooked);
- },
+ await render(hbs``);
- async test(assert) {
- assert.notOk(visible(".album-title"), "album title removed");
- },
+ assert.false(visible(".album-title"), "album title removed");
});
- componentTest("shows gallery link", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows gallery link", async function (assert) {
+ this.set("cooked", galleryCooked);
- beforeEach() {
- this.set("cooked", galleryCooked);
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(
- query(".chat-message-collapser-link-small").innerText.includes(
- "Le tomtom album"
- )
- );
- },
+ assert.true(
+ query(".chat-message-collapser-link-small").innerText.includes(
+ "Le tomtom album"
+ )
+ );
});
- componentTest("shows all user written text", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("shows all user written text", async function (assert) {
+ this.set("cooked", galleryCooked);
- beforeEach() {
- this.set("cooked", galleryCooked);
- },
+ await render(hbs``);
- async test(assert) {
- const text = document.querySelectorAll(".chat-message-collapser p");
+ const text = queryAll(".chat-message-collapser p");
- assert.equal(text.length, 2, "shows all written text");
- assert.strictEqual(text[0].innerText, "written text");
- assert.strictEqual(text[1].innerText, "more written text");
- },
+ assert.strictEqual(text.length, 2, "shows all written text");
+ assert.strictEqual(text[0].innerText, "written text");
+ assert.strictEqual(text[1].innerText, "more written text");
});
- componentTest("collapses and expands images", {
- template: hbs`{{chat-message-collapser cooked=cooked}}`,
+ test("collapses and expands images", async function (assert) {
+ this.set("cooked", galleryCooked);
- beforeEach() {
- this.set("cooked", galleryCooked);
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(visible("img"), "image visible initially");
+ assert.true(visible("img"), "image visible initially");
- await click(
- document.querySelectorAll(".chat-message-collapser-opened")[0],
- "close preview"
- );
+ await click(
+ queryAll(".chat-message-collapser-opened")[0],
+ "close preview"
+ );
+ assert.false(visible("img"), "image hidden");
- assert.notOk(visible("img"), "image hidden");
-
- await click(".chat-message-collapser-closed");
-
- assert.ok(visible("img"), "image visible initially");
- },
+ await click(".chat-message-collapser-closed");
+ assert.true(visible("img"), "image visible initially");
});
}
);
diff --git a/plugins/chat/test/javascripts/components/chat-message-info-test.js b/plugins/chat/test/javascripts/components/chat-message-info-test.js
index ffe946fda18..4fea2ebd07e 100644
--- a/plugins/chat/test/javascripts/components/chat-message-info-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-info-test.js
@@ -1,140 +1,111 @@
import Bookmark from "discourse/models/bookmark";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import hbs from "htmlbars-inline-precompile";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import I18n from "I18n";
-import { module } from "qunit";
+import { module, test } from "qunit";
import User from "discourse/models/user";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-message-info", function (hooks) {
setupRenderingTest(hooks);
- componentTest("chat_webhook_event", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("chat_webhook_event", async function (assert) {
+ this.set("message", { chat_webhook_event: { username: "discobot" } });
- beforeEach() {
- this.set("message", { chat_webhook_event: { username: "discobot" } });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-message-info__username").innerText.trim(),
- this.message.chat_webhook_event.username
- );
- assert.equal(
- query(".chat-message-info__bot-indicator").textContent.trim(),
- I18n.t("chat.bot")
- );
- },
+ assert.strictEqual(
+ query(".chat-message-info__username").innerText.trim(),
+ this.message.chat_webhook_event.username
+ );
+ assert.strictEqual(
+ query(".chat-message-info__bot-indicator").textContent.trim(),
+ I18n.t("chat.bot")
+ );
});
- componentTest("user", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("user", async function (assert) {
+ this.set("message", { user: { username: "discobot" } });
- beforeEach() {
- this.set("message", { user: { username: "discobot" } });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-message-info__username").innerText.trim(),
- this.message.user.username
- );
- },
+ assert.strictEqual(
+ query(".chat-message-info__username").innerText.trim(),
+ this.message.user.username
+ );
});
- componentTest("date", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("date", async function (assert) {
+ this.set("message", {
+ user: { username: "discobot" },
+ created_at: moment(),
+ });
- beforeEach() {
- this.set("message", {
- user: { username: "discobot" },
- created_at: moment(),
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".chat-message-info__date"));
- },
+ assert.true(exists(".chat-message-info__date"));
});
- componentTest("bookmark (with reminder)", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("bookmark (with reminder)", async function (assert) {
+ this.set("message", {
+ user: { username: "discobot" },
+ bookmark: Bookmark.create({
+ reminder_at: moment(),
+ name: "some name",
+ }),
+ });
- beforeEach() {
- this.set("message", {
- user: { username: "discobot" },
- bookmark: Bookmark.create({
- reminder_at: moment(),
- name: "some name",
- }),
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(
- exists(".chat-message-info__bookmark .d-icon-discourse-bookmark-clock")
- );
- },
+ assert.true(
+ exists(".chat-message-info__bookmark .d-icon-discourse-bookmark-clock")
+ );
});
- componentTest("bookmark (no reminder)", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("bookmark (no reminder)", async function (assert) {
+ this.set("message", {
+ user: { username: "discobot" },
+ bookmark: Bookmark.create({
+ name: "some name",
+ }),
+ });
- beforeEach() {
- this.set("message", {
- user: { username: "discobot" },
- bookmark: Bookmark.create({
- name: "some name",
- }),
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".chat-message-info__bookmark .d-icon-bookmark"));
- },
+ assert.true(exists(".chat-message-info__bookmark .d-icon-bookmark"));
});
- componentTest("user status", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("user status", async function (assert) {
+ const status = { description: "off to dentist", emoji: "tooth" };
+ this.set("message", { user: User.create({ status }) });
- beforeEach() {
- const status = { description: "off to dentist", emoji: "tooth" };
- this.set("message", { user: User.create({ status }) });
- },
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(".chat-message-info__status .user-status-message"));
- },
+ assert.true(exists(".chat-message-info__status .user-status-message"));
});
- componentTest("reviewable", {
- template: hbs`{{chat-message-info message=message}}`,
+ test("reviewable", async function (assert) {
+ this.set("message", {
+ user: { username: "discobot" },
+ user_flag_status: 0,
+ });
- beforeEach() {
- this.set("message", {
- user: { username: "discobot" },
- user_flag_status: 0,
- });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-message-info__flag > .svg-icon-title").title,
- I18n.t("chat.you_flagged")
- );
+ assert.strictEqual(
+ query(".chat-message-info__flag > .svg-icon-title").title,
+ I18n.t("chat.you_flagged")
+ );
- this.set("message", {
- user: { username: "discobot" },
- reviewable_id: 1,
- });
+ this.set("message", {
+ user: { username: "discobot" },
+ reviewable_id: 1,
+ });
- assert.equal(
- query(".chat-message-info__flag a .svg-icon-title").title,
- I18n.t("chat.flagged")
- );
- },
+ assert.strictEqual(
+ query(".chat-message-info__flag a .svg-icon-title").title,
+ I18n.t("chat.flagged")
+ );
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-message-move-to-channel-modal-inner-test.js b/plugins/chat/test/javascripts/components/chat-message-move-to-channel-modal-inner-test.js
index 5763df82a81..ebf72124b06 100644
--- a/plugins/chat/test/javascripts/components/chat-message-move-to-channel-modal-inner-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-move-to-channel-modal-inner-test.js
@@ -18,11 +18,15 @@ module(
this.set("chat", { publicChannels: [this.channel] });
this.set("selectedMessageIds", [1]);
- await render(
- hbs`{{chat-message-move-to-channel-modal-inner selectedMessageIds=selectedMessageIds sourceChannel=channel chat=chat}}`
- );
+ await render(hbs`
+
+ `);
- assert.ok(
+ assert.true(
query(".chat-message-move-to-channel-modal-inner").innerHTML.includes(
"<script>someeviltitle</script>"
)
diff --git a/plugins/chat/test/javascripts/components/chat-message-reaction-test.js b/plugins/chat/test/javascripts/components/chat-message-reaction-test.js
index 9b1dd1af531..86f1ca04c7f 100644
--- a/plugins/chat/test/javascripts/components/chat-message-reaction-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-reaction-test.js
@@ -1,104 +1,87 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { click } from "@ember/test-helpers";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
+import { click, render } from "@ember/test-helpers";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
+import { module, test } from "qunit";
module("Discourse Chat | Component | chat-message-reaction", function (hooks) {
setupRenderingTest(hooks);
- componentTest("accepts arbitrary class property", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart") class="foo"}}`,
+ test("accepts arbitrary class property", async function (assert) {
+ await render(hbs`
+
+ `);
- async test(assert) {
- assert.ok(exists(".chat-message-reaction.foo"));
- },
+ assert.true(exists(".chat-message-reaction.foo"));
});
- componentTest("adds reacted class when user reacted", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart" reacted=true)}}`,
+ test("adds reacted class when user reacted", async function (assert) {
+ await render(hbs`
+
+ `);
- async test(assert) {
- assert.ok(exists(".chat-message-reaction.reacted"));
- },
+ assert.true(exists(".chat-message-reaction.reacted"));
});
- componentTest("adds reaction name as class", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart")}}`,
+ test("adds reaction name as class", async function (assert) {
+ await render(hbs``);
- async test(assert) {
- assert.ok(exists(`.chat-message-reaction[data-emoji-name="heart"]`));
- },
+ assert.true(exists(`.chat-message-reaction[data-emoji-name="heart"]`));
});
- componentTest("adds show class when count is positive", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart" count=this.count)}}`,
+ test("adds show class when count is positive", async function (assert) {
+ this.set("count", 0);
- beforeEach() {
- this.set("count", 0);
- },
+ await render(hbs`
+
+ `);
- async test(assert) {
- assert.notOk(exists(".chat-message-reaction.show"));
+ assert.false(exists(".chat-message-reaction.show"));
+ this.set("count", 1);
+ assert.true(exists(".chat-message-reaction.show"));
+ });
+
+ test("title/alt attributes", async function (assert) {
+ await render(hbs``);
+
+ assert.strictEqual(query(".chat-message-reaction").title, ":heart:");
+ assert.strictEqual(query(".chat-message-reaction img").alt, ":heart:");
+ });
+
+ test("count of reactions", async function (assert) {
+ this.set("count", 0);
+
+ await render(hbs`
+
+ `);
+
+ assert.false(exists(".chat-message-reaction .count"));
+
+ this.set("count", 2);
+ assert.strictEqual(query(".chat-message-reaction .count").innerText, "2");
+ });
+
+ test("reaction’s image", async function (assert) {
+ await render(hbs``);
+
+ const src = query(".chat-message-reaction img").src;
+ assert.true(/heart\.png/.test(src));
+ });
+
+ test("click action", async function (assert) {
+ this.set("count", 0);
+ this.set("react", () => {
this.set("count", 1);
+ });
- assert.ok(exists(".chat-message-reaction.show"));
- },
- });
+ await render(hbs`
+
+ `);
- componentTest("title/alt attributes", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart")}}`,
+ assert.false(exists(".chat-message-reaction .count"));
- async test(assert) {
- assert.equal(query(".chat-message-reaction").title, ":heart:");
- assert.equal(query(".chat-message-reaction img").alt, ":heart:");
- },
- });
-
- componentTest("count of reactions", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart" count=this.count)}}`,
-
- beforeEach() {
- this.set("count", 0);
- },
-
- async test(assert) {
- assert.notOk(exists(".chat-message-reaction .count"));
-
- this.set("count", 2);
-
- assert.equal(query(".chat-message-reaction .count").innerText, "2");
- },
- });
-
- componentTest("reaction’s image", {
- template: hbs`{{chat-message-reaction reaction=(hash emoji="heart")}}`,
-
- async test(assert) {
- const src = query(".chat-message-reaction img").src;
- assert.ok(/heart\.png/.test(src));
- },
- });
-
- componentTest("click action", {
- template: hbs`{{chat-message-reaction class="show" reaction=(hash emoji="heart" count=this.count) react=this.react}}`,
-
- beforeEach() {
- this.set("count", 0);
- this.set("react", () => {
- this.set("count", 1);
- });
- },
-
- async test(assert) {
- assert.notOk(exists(".chat-message-reaction .count"));
-
- await click(".chat-message-reaction");
-
- assert.equal(query(".chat-message-reaction .count").innerText, "1");
- },
+ await click(".chat-message-reaction");
+ assert.strictEqual(query(".chat-message-reaction .count").innerText, "1");
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-message-separator-test.js b/plugins/chat/test/javascripts/components/chat-message-separator-test.js
index 6282130718d..4b4aad0e565 100644
--- a/plugins/chat/test/javascripts/components/chat-message-separator-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-separator-test.js
@@ -1,44 +1,35 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import I18n from "I18n";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-message-separator", function (hooks) {
setupRenderingTest(hooks);
- componentTest("newest message", {
- template: hbs`{{chat-message-separator message=message}}`,
+ test("newest message", async function (assert) {
+ this.set("message", { newestMessage: true });
- async beforeEach() {
- this.set("message", { newestMessage: true });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(".chat-message-separator.new-message .text").innerText.trim(),
- I18n.t("chat.new_messages")
- );
- },
+ assert.strictEqual(
+ query(".chat-message-separator.new-message .text").innerText.trim(),
+ I18n.t("chat.new_messages")
+ );
});
- componentTest("first message of the day", {
- template: hbs`{{chat-message-separator message=message}}`,
+ test("first message of the day", async function (assert) {
+ this.set("date", moment().format("LLL"));
+ this.set("message", { firstMessageOfTheDayAt: this.date });
- async beforeEach() {
- this.set("date", moment().format("LLL"));
- this.set("message", { firstMessageOfTheDayAt: this.date });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(
- query(
- ".chat-message-separator.first-daily-message .text"
- ).innerText.trim(),
- this.date
- );
- },
+ assert.strictEqual(
+ query(
+ ".chat-message-separator.first-daily-message .text"
+ ).innerText.trim(),
+ this.date
+ );
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-message-test.js b/plugins/chat/test/javascripts/components/chat-message-test.js
index a937d668283..3dbaf2737e0 100644
--- a/plugins/chat/test/javascripts/components/chat-message-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-test.js
@@ -60,26 +60,28 @@ module("Discourse Chat | Component | chat-message", function (hooks) {
};
}
- const template = hbs`{{chat-message
- message=message
- canInteractWithChat=canInteractWithChat
- details=this.details
- chatChannel=chatChannel
- setReplyTo=setReplyTo
- replyMessageClicked=replyMessageClicked
- editButtonClicked=editButtonClicked
- selectingMessages=selectingMessages
- onStartSelectingMessages=onStartSelectingMessages
- onSelectMessage=onSelectMessage
- bulkSelectMessages=bulkSelectMessages
- onHoverMessage=onHoverMessage
- afterReactionAdded=reStickScrollIfNeeded
- }}`;
+ const template = hbs`
+
+ `;
test("Message with edits", async function (assert) {
this.setProperties(generateMessageProps({ edited: true }));
await render(template);
- assert.ok(
+ assert.true(
exists(".chat-message-edited"),
"has the correct edited css class"
);
@@ -88,7 +90,7 @@ module("Discourse Chat | Component | chat-message", function (hooks) {
test("Deleted message", async function (assert) {
this.setProperties(generateMessageProps({ deleted_at: moment() }));
await render(template);
- assert.ok(
+ assert.true(
exists(".chat-message-deleted .chat-message-expand"),
"has the correct deleted css class and expand button within"
);
@@ -97,7 +99,7 @@ module("Discourse Chat | Component | chat-message", function (hooks) {
test("Hidden message", async function (assert) {
this.setProperties(generateMessageProps({ hidden: true }));
await render(template);
- assert.ok(
+ assert.true(
exists(".chat-message-hidden .chat-message-expand"),
"has the correct hidden css class and expand button within"
);
@@ -109,7 +111,7 @@ module("Discourse Chat | Component | chat-message", function (hooks) {
await render(template);
await waitFor("div[data-visible=true]");
- assert.ok(
+ assert.true(
exists(".chat-message-container[data-visible=true]"),
"message is marked as visible"
);
diff --git a/plugins/chat/test/javascripts/components/chat-message-text-test.js b/plugins/chat/test/javascripts/components/chat-message-text-test.js
index 938cb5bc761..f0ba6fcd14f 100644
--- a/plugins/chat/test/javascripts/components/chat-message-text-test.js
+++ b/plugins/chat/test/javascripts/components/chat-message-text-test.js
@@ -1,76 +1,62 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import hbs from "htmlbars-inline-precompile";
import { exists } from "discourse/tests/helpers/qunit-helpers";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-message-text", function (hooks) {
setupRenderingTest(hooks);
- componentTest("yields", {
- template: hbs`{{#chat-message-text cooked=cooked uploads=uploads}} {{/chat-message-text}}`,
+ test("yields", async function (assert) {
+ this.set("cooked", "");
- beforeEach() {
- this.set("cooked", "");
- },
+ await render(hbs`
+
+
+
+ `);
- async test(assert) {
- assert.ok(exists(".yield-me"));
- },
+ assert.true(exists(".yield-me"));
});
- componentTest("shows collapsed", {
- template: hbs`{{chat-message-text cooked=cooked uploads=uploads}}`,
+ test("shows collapsed", async function (assert) {
+ this.set(
+ "cooked",
+ ''
+ );
- beforeEach() {
- this.set(
- "cooked",
- ''
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists(".chat-message-collapser"));
- },
+ assert.true(exists(".chat-message-collapser"));
});
- componentTest("does not collapse a non-image onebox", {
- template: hbs`{{chat-message-text cooked=cooked}}`,
+ test("does not collapse a non-image onebox", async function (assert) {
+ this.set("cooked", '
');
- beforeEach() {
- this.set(
- "cooked",
- '
'
- );
- },
+ await render(hbs``);
- async test(assert) {
- assert.notOk(exists(".chat-message-collapser"));
- },
+ assert.false(exists(".chat-message-collapser"));
});
- componentTest("shows edits - regular message", {
- template: hbs`{{chat-message-text cooked=cooked edited=true}}`,
+ test("shows edits - regular message", async function (assert) {
+ this.set("cooked", "");
- beforeEach() {
- this.set("cooked", "");
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists(".chat-message-edited"));
- },
+ assert.true(exists(".chat-message-edited"));
});
- componentTest("shows edits - collapsible message", {
- template: hbs`{{chat-message-text cooked=cooked edited=true}}`,
+ test("shows edits - collapsible message", async function (assert) {
+ this.set("cooked", '');
- beforeEach() {
- this.set("cooked", '');
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists(".chat-message-edited"));
- },
+ assert.true(exists(".chat-message-edited"));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js b/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js
index 84468a68b1a..3ee425029bd 100644
--- a/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js
+++ b/plugins/chat/test/javascripts/components/chat-replying-indicator-test.js
@@ -1,182 +1,166 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import fabricators from "../helpers/fabricators";
import MockPresenceChannel from "../helpers/mock-presence-channel";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module(
"Discourse Chat | Component | chat-replying-indicator",
function (hooks) {
setupRenderingTest(hooks);
- componentTest("not displayed when no one is replying", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("not displayed when no one is replying", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.notOk(exists(".chat-replying-indicator__text"));
- },
+ assert.false(exists(".chat-replying-indicator__text"));
});
- componentTest("displays indicator when user is replying", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("displays indicator when user is replying", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const sam = { id: 1, username: "sam" };
- this.set("presenceChannel.users", [sam]);
+ const sam = { id: 1, username: "sam" };
+ this.set("presenceChannel.users", [sam]);
- assert.equal(
- query(".chat-replying-indicator__text").innerText,
- `${sam.username} is typing`
- );
- },
+ assert.strictEqual(
+ query(".chat-replying-indicator__text").innerText,
+ `${sam.username} is typing`
+ );
});
- componentTest("displays indicator when 2 or 3 users are replying", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("displays indicator when 2 or 3 users are replying", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const sam = { id: 1, username: "sam" };
- const mark = { id: 2, username: "mark" };
- this.set("presenceChannel.users", [sam, mark]);
+ const sam = { id: 1, username: "sam" };
+ const mark = { id: 2, username: "mark" };
+ this.set("presenceChannel.users", [sam, mark]);
- assert.equal(
- query(".chat-replying-indicator__text").innerText,
- `${sam.username} and ${mark.username} are typing`
- );
- },
+ assert.strictEqual(
+ query(".chat-replying-indicator__text").innerText,
+ `${sam.username} and ${mark.username} are typing`
+ );
});
- componentTest("displays indicator when 3 users are replying", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("displays indicator when 3 users are replying", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const sam = { id: 1, username: "sam" };
- const mark = { id: 2, username: "mark" };
- const joffrey = { id: 3, username: "joffrey" };
- this.set("presenceChannel.users", [sam, mark, joffrey]);
+ const sam = { id: 1, username: "sam" };
+ const mark = { id: 2, username: "mark" };
+ const joffrey = { id: 3, username: "joffrey" };
+ this.set("presenceChannel.users", [sam, mark, joffrey]);
- assert.equal(
- query(".chat-replying-indicator__text").innerText,
- `${sam.username}, ${mark.username} and ${joffrey.username} are typing`
- );
- },
+ assert.strictEqual(
+ query(".chat-replying-indicator__text").innerText,
+ `${sam.username}, ${mark.username} and ${joffrey.username} are typing`
+ );
});
- componentTest("displays indicator when more than 3 users are replying", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("displays indicator when more than 3 users are replying", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const sam = { id: 1, username: "sam" };
- const mark = { id: 2, username: "mark" };
- const joffrey = { id: 3, username: "joffrey" };
- const taylor = { id: 4, username: "taylor" };
- this.set("presenceChannel.users", [sam, mark, joffrey, taylor]);
+ const sam = { id: 1, username: "sam" };
+ const mark = { id: 2, username: "mark" };
+ const joffrey = { id: 3, username: "joffrey" };
+ const taylor = { id: 4, username: "taylor" };
+ this.set("presenceChannel.users", [sam, mark, joffrey, taylor]);
- assert.equal(
- query(".chat-replying-indicator__text").innerText,
- `${sam.username}, ${mark.username} and 2 others are typing`
- );
- },
+ assert.strictEqual(
+ query(".chat-replying-indicator__text").innerText,
+ `${sam.username}, ${mark.username} and 2 others are typing`
+ );
});
- componentTest("filters current user from list of repliers", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("filters current user from list of repliers", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- const sam = { id: 1, username: "sam" };
- this.set("presenceChannel.users", [sam, this.currentUser]);
+ const sam = { id: 1, username: "sam" };
+ this.set("presenceChannel.users", [sam, this.currentUser]);
- assert.equal(
- query(".chat-replying-indicator__text").innerText,
- `${sam.username} is typing`
- );
- },
+ assert.strictEqual(
+ query(".chat-replying-indicator__text").innerText,
+ `${sam.username} is typing`
+ );
});
- componentTest("resets presence when channel is draft", {
- template: hbs`{{chat-replying-indicator presenceChannel=presenceChannel chatChannel=chatChannel}}`,
+ test("resets presence when channel is draft", async function (assert) {
+ this.set("chatChannel", fabricators.chatChannel());
+ this.set(
+ "presenceChannel",
+ MockPresenceChannel.create({
+ name: `/chat-reply/${this.chatChannel.id}`,
+ subscribed: true,
+ })
+ );
- async beforeEach() {
- this.set("chatChannel", fabricators.chatChannel());
- this.set(
- "presenceChannel",
- MockPresenceChannel.create({
- name: `/chat-reply/${this.chatChannel.id}`,
- subscribed: true,
- })
- );
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(this.presenceChannel.subscribed);
+ assert.true(this.presenceChannel.subscribed);
- this.set("chatChannel", fabricators.chatChannel({ isDraft: true }));
-
- assert.notOk(this.presenceChannel.subscribed);
- },
+ this.set("chatChannel", fabricators.chatChannel({ isDraft: true }));
+ assert.false(this.presenceChannel.subscribed);
});
}
);
diff --git a/plugins/chat/test/javascripts/components/chat-retention-reminder-test.js b/plugins/chat/test/javascripts/components/chat-retention-reminder-test.js
index 89620f1c930..d22042478d8 100644
--- a/plugins/chat/test/javascripts/components/chat-retention-reminder-test.js
+++ b/plugins/chat/test/javascripts/components/chat-retention-reminder-test.js
@@ -1,93 +1,80 @@
import ChatChannel from "discourse/plugins/chat/discourse/models/chat-channel";
-import { set } from "@ember/object";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import I18n from "I18n";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
module(
"Discourse Chat | Component | chat-retention-reminder",
function (hooks) {
setupRenderingTest(hooks);
- componentTest("Shows for public channels when user needs it", {
- template: hbs`{{chat-retention-reminder chatChannel=chatChannel}}`,
+ test("Shows for public channels when user needs it", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({ chatable_type: "Category" })
+ );
+ this.currentUser.set("needs_channel_retention_reminder", true);
+ this.siteSettings.chat_channel_retention_days = 100;
- async beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({ chatable_type: "Category" })
- );
- set(this.currentUser, "needs_channel_retention_reminder", true);
- this.siteSettings.chat_channel_retention_days = 100;
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.equal(
- query(".chat-retention-reminder-text").innerText.trim(),
- I18n.t("chat.retention_reminders.public", { days: 100 })
- );
- },
+ assert.strictEqual(
+ query(".chat-retention-reminder-text").innerText.trim(),
+ I18n.t("chat.retention_reminders.public", { days: 100 })
+ );
});
- componentTest(
- "Doesn't show for public channels when user has dismissed it",
- {
- template: hbs`{{chat-retention-reminder chatChannel=chatChannel}}`,
+ test("Doesn't show for public channels when user has dismissed it", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({ chatable_type: "Category" })
+ );
+ this.currentUser.set("needs_channel_retention_reminder", false);
+ this.siteSettings.chat_channel_retention_days = 100;
- async beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({ chatable_type: "Category" })
- );
- set(this.currentUser, "needs_channel_retention_reminder", false);
- this.siteSettings.chat_channel_retention_days = 100;
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.notOk(exists(".chat-retention-reminder"));
- },
- }
- );
-
- componentTest("Shows for direct message channels when user needs it", {
- template: hbs`{{chat-retention-reminder chatChannel=chatChannel}}`,
-
- async beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({ chatable_type: "DirectMessage" })
- );
- set(this.currentUser, "needs_dm_retention_reminder", true);
- this.siteSettings.chat_dm_retention_days = 100;
- },
-
- async test(assert) {
- assert.equal(
- query(".chat-retention-reminder-text").innerText.trim(),
- I18n.t("chat.retention_reminders.dm", { days: 100 })
- );
- },
+ assert.false(exists(".chat-retention-reminder"));
});
- componentTest("Doesn't show for dm channels when user has dismissed it", {
- template: hbs`{{chat-retention-reminder chatChannel=chatChannel}}`,
+ test("Shows for direct message channels when user needs it", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({ chatable_type: "DirectMessage" })
+ );
+ this.currentUser.set("needs_dm_retention_reminder", true);
+ this.siteSettings.chat_dm_retention_days = 100;
- async beforeEach() {
- this.set(
- "chatChannel",
- ChatChannel.create({ chatable_type: "DirectMessage" })
- );
- set(this.currentUser, "needs_dm_retention_reminder", false);
- this.siteSettings.chat_dm_retention_days = 100;
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.notOk(exists(".chat-retention-reminder"));
- },
+ assert.strictEqual(
+ query(".chat-retention-reminder-text").innerText.trim(),
+ I18n.t("chat.retention_reminders.dm", { days: 100 })
+ );
+ });
+
+ test("Doesn't show for dm channels when user has dismissed it", async function (assert) {
+ this.set(
+ "chatChannel",
+ ChatChannel.create({ chatable_type: "DirectMessage" })
+ );
+ this.currentUser.set("needs_dm_retention_reminder", false);
+ this.siteSettings.chat_dm_retention_days = 100;
+
+ await render(
+ hbs``
+ );
+
+ assert.false(exists(".chat-retention-reminder"));
});
}
);
diff --git a/plugins/chat/test/javascripts/components/chat-upload-test.js b/plugins/chat/test/javascripts/components/chat-upload-test.js
index 989da1f8be4..c423b2f11ad 100644
--- a/plugins/chat/test/javascripts/components/chat-upload-test.js
+++ b/plugins/chat/test/javascripts/components/chat-upload-test.js
@@ -1,10 +1,8 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
-import { settled } from "@ember/test-helpers";
+import { module, test } from "qunit";
+import { render, settled } from "@ember/test-helpers";
const IMAGE_FIXTURE = {
id: 290,
@@ -54,65 +52,53 @@ const TXT_FIXTURE = {
module("Discourse Chat | Component | chat-upload", function (hooks) {
setupRenderingTest(hooks);
- componentTest("with an image", {
- template: hbs`{{chat-upload upload=upload}}`,
+ test("with an image", async function (assert) {
+ this.set("upload", IMAGE_FIXTURE);
- beforeEach() {
- this.set("upload", IMAGE_FIXTURE);
- },
+ await render(hbs``);
- async test(assert) {
- assert.true(exists("img.chat-img-upload"), "displays as an image");
- const image = query("img.chat-img-upload");
- assert.strictEqual(image.loading, "lazy", "is lazy loading");
+ assert.true(exists("img.chat-img-upload"), "displays as an image");
+ const image = query("img.chat-img-upload");
+ assert.strictEqual(image.loading, "lazy", "is lazy loading");
- assert.strictEqual(
- image.style.backgroundColor,
- "rgb(120, 131, 112)",
- "sets background to dominant color"
- );
+ assert.strictEqual(
+ image.style.backgroundColor,
+ "rgb(120, 131, 112)",
+ "sets background to dominant color"
+ );
- image.dispatchEvent(new Event("load")); // Fake that the image has loaded
- await settled();
+ image.dispatchEvent(new Event("load")); // Fake that the image has loaded
+ await settled();
- assert.strictEqual(
- image.style.backgroundColor,
- "",
- "removes the background color once the image has loaded"
- );
- },
+ assert.strictEqual(
+ image.style.backgroundColor,
+ "",
+ "removes the background color once the image has loaded"
+ );
});
- componentTest("with a video", {
- template: hbs`{{chat-upload upload=upload}}`,
+ test("with a video", async function (assert) {
+ this.set("upload", VIDEO_FIXTURE);
- beforeEach() {
- this.set("upload", VIDEO_FIXTURE);
- },
+ await render(hbs``);
- async test(assert) {
- assert.true(exists("video.chat-video-upload"), "displays as an video");
- const video = query("video.chat-video-upload");
- assert.ok(video.hasAttribute("controls"), "has video controls");
- assert.strictEqual(
- video.getAttribute("preload"),
- "metadata",
- "video has correct preload settings"
- );
- },
+ assert.true(exists("video.chat-video-upload"), "displays as an video");
+ const video = query("video.chat-video-upload");
+ assert.true(video.hasAttribute("controls"), "has video controls");
+ assert.strictEqual(
+ video.getAttribute("preload"),
+ "metadata",
+ "video has correct preload settings"
+ );
});
- componentTest("non image upload", {
- template: hbs`{{chat-upload upload=upload}}`,
+ test("non image upload", async function (assert) {
+ this.set("upload", TXT_FIXTURE);
- beforeEach() {
- this.set("upload", TXT_FIXTURE);
- },
+ await render(hbs``);
- async test(assert) {
- assert.true(exists("a.chat-other-upload"), "displays as a link");
- const link = query("a.chat-other-upload");
- assert.strictEqual(link.href, TXT_FIXTURE.url, "has the correct URL");
- },
+ assert.true(exists("a.chat-other-upload"), "displays as a link");
+ const link = query("a.chat-other-upload");
+ assert.strictEqual(link.href, TXT_FIXTURE.url, "has the correct URL");
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-user-avatar-test.js b/plugins/chat/test/javascripts/components/chat-user-avatar-test.js
index 3bed00c31ed..0cd68f37ab5 100644
--- a/plugins/chat/test/javascripts/components/chat-user-avatar-test.js
+++ b/plugins/chat/test/javascripts/components/chat-user-avatar-test.js
@@ -1,9 +1,8 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { exists } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
const user = {
id: 1,
@@ -15,41 +14,37 @@ const user = {
module("Discourse Chat | Component | chat-user-avatar", function (hooks) {
setupRenderingTest(hooks);
- componentTest("user is not online", {
- template: hbs`{{chat-user-avatar chat=chat user=user}}`,
+ test("user is not online", async function (assert) {
+ this.set("user", user);
+ this.set("chat", { presenceChannel: { users: [] } });
- async beforeEach() {
- this.set("user", user);
- this.set("chat", { presenceChannel: { users: [] } });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(
- exists(
- `.chat-user-avatar .chat-user-avatar-container[data-user-card=${user.username}] .avatar[title=${user.username}]`
- )
- );
- assert.notOk(exists(".chat-user-avatar.is-online"));
- },
+ assert.true(
+ exists(
+ `.chat-user-avatar .chat-user-avatar-container[data-user-card=${user.username}] .avatar[title=${user.username}]`
+ )
+ );
+ assert.false(exists(".chat-user-avatar.is-online"));
});
- componentTest("user is online", {
- template: hbs`{{chat-user-avatar chat=chat user=user}}`,
+ test("user is online", async function (assert) {
+ this.set("user", user);
+ this.set("chat", {
+ presenceChannel: { users: [{ id: user.id }] },
+ });
- async beforeEach() {
- this.set("user", user);
- this.set("chat", {
- presenceChannel: { users: [{ id: user.id }] },
- });
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(
- exists(
- `.chat-user-avatar .chat-user-avatar-container[data-user-card=${user.username}] .avatar[title=${user.username}]`
- )
- );
- assert.ok(exists(".chat-user-avatar.is-online"));
- },
+ assert.true(
+ exists(
+ `.chat-user-avatar .chat-user-avatar-container[data-user-card=${user.username}] .avatar[title=${user.username}]`
+ )
+ );
+ assert.true(exists(".chat-user-avatar.is-online"));
});
});
diff --git a/plugins/chat/test/javascripts/components/chat-user-display-name-test.js b/plugins/chat/test/javascripts/components/chat-user-display-name-test.js
index 26e56d20536..505ed35a52b 100644
--- a/plugins/chat/test/javascripts/components/chat-user-display-name-test.js
+++ b/plugins/chat/test/javascripts/components/chat-user-display-name-test.js
@@ -1,9 +1,8 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { query } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
-import { module } from "qunit";
+import { module, test } from "qunit";
+import { render } from "@ember/test-helpers";
function displayName() {
return query(".chat-user-display-name").innerText.trim();
@@ -14,30 +13,22 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- componentTest("username and no name", {
- template: hbs`{{chat-user-display-name user=user}}`,
+ test("username and no name", async function (assert) {
+ this.siteSettings.prioritize_username_in_ux = true;
+ this.set("user", { username: "bob", name: null });
- async beforeEach() {
- this.siteSettings.prioritize_username_in_ux = true;
- this.set("user", { username: "bob", name: null });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(displayName(), "bob");
- },
+ assert.strictEqual(displayName(), "bob");
});
- componentTest("username and name", {
- template: hbs`{{chat-user-display-name user=user}}`,
+ test("username and name", async function (assert) {
+ this.siteSettings.prioritize_username_in_ux = true;
+ this.set("user", { username: "bob", name: "Bobcat" });
- async beforeEach() {
- this.siteSettings.prioritize_username_in_ux = true;
- this.set("user", { username: "bob", name: "Bobcat" });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(displayName(), "bob — Bobcat");
- },
+ assert.strictEqual(displayName(), "bob — Bobcat");
});
}
);
@@ -47,30 +38,22 @@ module(
function (hooks) {
setupRenderingTest(hooks);
- componentTest("no name", {
- template: hbs`{{chat-user-display-name user=user}}`,
+ test("no name", async function (assert) {
+ this.siteSettings.prioritize_username_in_ux = false;
+ this.set("user", { username: "bob", name: null });
- async beforeEach() {
- this.siteSettings.prioritize_username_in_ux = false;
- this.set("user", { username: "bob", name: null });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(displayName(), "bob");
- },
+ assert.strictEqual(displayName(), "bob");
});
- componentTest("name and username", {
- template: hbs`{{chat-user-display-name user=user}}`,
+ test("name and username", async function (assert) {
+ this.siteSettings.prioritize_username_in_ux = false;
+ this.set("user", { username: "bob", name: "Bobcat" });
- async beforeEach() {
- this.siteSettings.prioritize_username_in_ux = false;
- this.set("user", { username: "bob", name: "Bobcat" });
- },
+ await render(hbs``);
- async test(assert) {
- assert.equal(displayName(), "Bobcat — bob");
- },
+ assert.strictEqual(displayName(), "Bobcat — bob");
});
}
);
diff --git a/plugins/chat/test/javascripts/components/collapser-test.js b/plugins/chat/test/javascripts/components/collapser-test.js
index 8409c97a991..b03eb65e838 100644
--- a/plugins/chat/test/javascripts/components/collapser-test.js
+++ b/plugins/chat/test/javascripts/components/collapser-test.js
@@ -1,45 +1,38 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { click } from "@ember/test-helpers";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
+import { click, render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
-import { exists, query, visible } from "discourse/tests/helpers/qunit-helpers";
-import { module } from "qunit";
+import { exists, visible } from "discourse/tests/helpers/qunit-helpers";
+import { module, test } from "qunit";
import { htmlSafe } from "@ember/template";
module("Discourse Chat | Component | collapser", function (hooks) {
setupRenderingTest(hooks);
- componentTest("renders header", {
- template: hbs`{{collapser header=header}}`,
+ test("renders header", async function (assert) {
+ this.set("header", htmlSafe(`tomtom
`));
- beforeEach() {
- this.set("header", htmlSafe("tomtom
"));
- },
+ await render(hbs``);
- async test(assert) {
- const element = query(".cat");
-
- assert.ok(exists(element));
- },
+ assert.true(exists(".cat"));
});
- componentTest("collapses and expands yielded body", {
- template: hbs`{{#collapser}}body text
{{/collapser}}`,
+ test("collapses and expands yielded body", async function (assert) {
+ await render(hbs`
+
+ body text
+
+ `);
- test: async function (assert) {
- const openButton = ".chat-message-collapser-closed";
- const closeButton = ".chat-message-collapser-opened";
- const body = ".cat";
+ const openButton = ".chat-message-collapser-closed";
+ const closeButton = ".chat-message-collapser-opened";
+ const body = ".cat";
- assert.ok(visible(body));
- await click(closeButton);
+ assert.true(visible(body));
- assert.notOk(visible(body));
+ await click(closeButton);
+ assert.false(visible(body));
- await click(openButton);
-
- assert.ok(visible(body));
- },
+ await click(openButton);
+ assert.true(visible(body));
});
});
diff --git a/plugins/chat/test/javascripts/components/dc-filter-input-test.js b/plugins/chat/test/javascripts/components/dc-filter-input-test.js
index 10e5e75f855..99c80a83c6a 100644
--- a/plugins/chat/test/javascripts/components/dc-filter-input-test.js
+++ b/plugins/chat/test/javascripts/components/dc-filter-input-test.js
@@ -10,26 +10,26 @@ module("Discourse Chat | Component | dc-filter-input", function (hooks) {
test("Left icon", async function (assert) {
await render(hbs``);
- assert.ok(exists(".d-icon-bell.-left"));
+ assert.true(exists(".d-icon-bell.-left"));
});
test("Right icon", async function (assert) {
await render(hbs``);
- assert.ok(exists(".d-icon-bell.-right"));
+ assert.true(exists(".d-icon-bell.-right"));
});
test("Class attribute", async function (assert) {
await render(hbs``);
- assert.ok(exists(".dc-filter-input-container.foo"));
+ assert.true(exists(".dc-filter-input-container.foo"));
});
test("Html attributes", async function (assert) {
await render(hbs``);
- assert.ok(exists('.dc-filter-input[data-foo="1"]'));
- assert.ok(exists('.dc-filter-input[placeholder="bar"]'));
+ assert.true(exists('.dc-filter-input[data-foo="1"]'));
+ assert.true(exists('.dc-filter-input[placeholder="bar"]'));
});
test("Filter action", async function (assert) {
@@ -40,17 +40,17 @@ module("Discourse Chat | Component | dc-filter-input", function (hooks) {
await render(hbs``);
await fillIn(".dc-filter-input", "foo");
- assert.equal(this.value, "foo");
+ assert.strictEqual(this.value, "foo");
});
test("Focused state", async function (assert) {
await render(hbs``);
await triggerEvent(".dc-filter-input", "focusin");
- assert.ok(exists(".dc-filter-input-container.is-focused"));
+ assert.true(exists(".dc-filter-input-container.is-focused"));
await triggerEvent(".dc-filter-input", "focusout");
- assert.notOk(exists(".dc-filter-input-container.is-focused"));
+ assert.false(exists(".dc-filter-input-container.is-focused"));
});
});
diff --git a/plugins/chat/test/javascripts/components/direct-message-creator-test.js b/plugins/chat/test/javascripts/components/direct-message-creator-test.js
index 8bcbd42ec05..822003f7c9b 100644
--- a/plugins/chat/test/javascripts/components/direct-message-creator-test.js
+++ b/plugins/chat/test/javascripts/components/direct-message-creator-test.js
@@ -1,13 +1,11 @@
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { click, fillIn } from "@ember/test-helpers";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
+import { click, fillIn, render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
import { createDirectMessageChannelDraft } from "discourse/plugins/chat/discourse/models/chat-channel";
import { Promise } from "rsvp";
import fabricators from "../helpers/fabricators";
-import { module } from "qunit";
+import { module, test } from "qunit";
function mockChat(context, options = {}) {
const mock = context.container.lookup("service:chat");
@@ -25,143 +23,119 @@ function mockChat(context, options = {}) {
module("Discourse Chat | Component | direct-message-creator", function (hooks) {
setupRenderingTest(hooks);
- componentTest("search", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("search", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await fillIn(".filter-usernames", "hawk");
- assert.ok(exists("li.user[data-username='hawk']"));
- },
+ await fillIn(".filter-usernames", "hawk");
+ assert.true(exists("li.user[data-username='hawk']"));
});
- componentTest("select/deselect", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("select/deselect", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
+ assert.false(exists(".selected-user"));
- async test(assert) {
- assert.notOk(exists(".selected-user"));
+ await fillIn(".filter-usernames", "hawk");
+ await click("li.user[data-username='hawk']");
+ assert.true(exists(".selected-user"));
- await fillIn(".filter-usernames", "hawk");
- await click("li.user[data-username='hawk']");
-
- assert.ok(exists(".selected-user"));
-
- await click(".selected-user");
-
- assert.notOk(exists(".selected-user"));
- },
+ await click(".selected-user");
+ assert.false(exists(".selected-user"));
});
- componentTest("no search results", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("no search results", async function (assert) {
+ this.set("chat", mockChat(this, { users: [] }));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this, { users: [] }));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await fillIn(".filter-usernames", "bad cat");
-
- assert.ok(exists(".no-results"));
- },
+ await fillIn(".filter-usernames", "bad cat");
+ assert.true(exists(".no-results"));
});
- componentTest("loads user on first load", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("loads user on first load", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- assert.ok(exists("li.user[data-username='hawk']"));
- assert.ok(exists("li.user[data-username='mark']"));
- },
+ assert.true(exists("li.user[data-username='hawk']"));
+ assert.true(exists("li.user[data-username='mark']"));
});
- componentTest("do not load more users after selection", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("do not load more users after selection", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await click("li.user[data-username='hawk']");
-
- assert.notOk(exists("li.user[data-username='mark']"));
- },
+ await click("li.user[data-username='hawk']");
+ assert.false(exists("li.user[data-username='mark']"));
});
- componentTest("apply is-focused to filter-area on focus input", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("apply is-focused to filter-area on focus input", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await click(".filter-usernames");
+ await click(".filter-usernames");
+ assert.true(exists(".filter-area.is-focused"));
- assert.ok(exists(".filter-area.is-focused"));
-
- await click(".test-blur");
-
- assert.notOk(exists(".filter-area.is-focused"));
- },
+ await click(".test-blur");
+ assert.false(exists(".filter-area.is-focused"));
});
- componentTest("state is reset on channel change", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("state is reset on channel change", async function (assert) {
+ this.set("chat", mockChat(this));
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- this.set("chat", mockChat(this));
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await fillIn(".filter-usernames", "hawk");
+ await fillIn(".filter-usernames", "hawk");
+ assert.strictEqual(query(".filter-usernames").value, "hawk");
- assert.equal(query(".filter-usernames").value, "hawk");
+ this.set("channel", fabricators.chatChannel());
+ this.set("channel", createDirectMessageChannelDraft());
- this.set("channel", fabricators.chatChannel());
- this.set("channel", createDirectMessageChannelDraft());
-
- assert.equal(query(".filter-usernames").value, "");
- assert.ok(exists(".filter-area.is-focused"));
- assert.ok(exists("li.user[data-username='hawk']"));
- },
+ assert.strictEqual(query(".filter-usernames").value, "");
+ assert.true(exists(".filter-area.is-focused"));
+ assert.true(exists("li.user[data-username='hawk']"));
});
- componentTest("shows user status", {
- template: hbs`{{direct-message-creator channel=channel chat=chat}}`,
+ test("shows user status", async function (assert) {
+ const userWithStatus = {
+ username: "hawk",
+ status: { emoji: "tooth", description: "off to dentist" },
+ };
+ const chat = mockChat(this, { users: [userWithStatus] });
+ this.set("chat", chat);
+ this.set("channel", createDirectMessageChannelDraft());
- beforeEach() {
- const userWithStatus = {
- username: "hawk",
- status: { emoji: "tooth", description: "off to dentist" },
- };
- const chat = mockChat(this, { users: [userWithStatus] });
- this.set("chat", chat);
- this.set("channel", createDirectMessageChannelDraft());
- },
+ await render(
+ hbs``
+ );
- async test(assert) {
- await fillIn(".filter-usernames", "hawk");
- assert.ok(exists(".user-status-message"));
- },
+ await fillIn(".filter-usernames", "hawk");
+ assert.true(exists(".user-status-message"));
});
});
diff --git a/plugins/chat/test/javascripts/components/on-visibility-action-test.js b/plugins/chat/test/javascripts/components/on-visibility-action-test.js
index 8eea7855bfe..759d2c4ab5c 100644
--- a/plugins/chat/test/javascripts/components/on-visibility-action-test.js
+++ b/plugins/chat/test/javascripts/components/on-visibility-action-test.js
@@ -15,15 +15,17 @@ module("Discourse Chat | Component | on-visibility-action", function (hooks) {
this.set("root", document.querySelector("#ember-testing"));
- await render(
- hbs`{{#if display}}{{on-visibility-action action=action root=root}}{{/if}}`
- );
+ await render(hbs`
+ {{#if display}}
+
+ {{/if}}
+ `);
- assert.equal(this.value, null);
+ assert.strictEqual(this.value, null);
this.set("display", true);
await waitUntil(() => this.value !== null);
- assert.equal(this.value, "foo");
+ assert.strictEqual(this.value, "foo");
});
});
diff --git a/plugins/chat/test/javascripts/components/user-card-chat-button-test.js b/plugins/chat/test/javascripts/components/user-card-chat-button-test.js
index d585ae9fb82..953efb9e455 100644
--- a/plugins/chat/test/javascripts/components/user-card-chat-button-test.js
+++ b/plugins/chat/test/javascripts/components/user-card-chat-button-test.js
@@ -15,7 +15,7 @@ module("Discourse Chat | Component | user-card-chat-button", function (hooks) {
await render(hbs``);
- assert.ok(exists(".user-card-chat-btn"), "it shows the chat button");
+ assert.true(exists(".user-card-chat-btn"), "it shows the chat button");
});
test("when current user can’t send direct messages", async function (assert) {
@@ -25,7 +25,7 @@ module("Discourse Chat | Component | user-card-chat-button", function (hooks) {
await render(hbs``);
- assert.notOk(
+ assert.false(
exists(".user-card-chat-btn"),
"it doesn’t show the chat button"
);
diff --git a/plugins/chat/test/javascripts/integration/components/user-menu/chat-notifications-list-test.js b/plugins/chat/test/javascripts/integration/components/user-menu/chat-notifications-list-test.js
index 9d352560bce..71b249a11b6 100644
--- a/plugins/chat/test/javascripts/integration/components/user-menu/chat-notifications-list-test.js
+++ b/plugins/chat/test/javascripts/integration/components/user-menu/chat-notifications-list-test.js
@@ -21,7 +21,7 @@ module(
test("empty state when there are no notifications", async function (assert) {
await render(template);
- assert.ok(exists(".empty-state .empty-state-body"));
+ assert.true(exists(".empty-state .empty-state-body"));
assert.strictEqual(
query(".empty-state .empty-state-title").textContent.trim(),
I18n.t("user_menu.no_chat_notifications_title")