mirror of
https://github.com/discourse/discourse.git
synced 2024-12-16 02:53:42 +08:00
ab832cc865
Group channels will allow users to create channels with a name and invite people. It's possible to add people even after creation of the channel. Removing users is not yet possible but will be added in the near future. Technically a group channel is `direct_message_channel` with a group attribute set to true on its direct message (chatable). This model might evolve in the future but offers much flexibility for now without having to rely on a complex migration. The commit essentially consists of: - a migration to set existing direct message channels with more than 2 users to a group - a new message creator which allows to search, add members, and create groups - a new `AddUsersToChannel` service - a modified `SearchChatable` service
73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
import { render } from "@ember/test-helpers";
|
|
import hbs from "htmlbars-inline-precompile";
|
|
import { module, test } from "qunit";
|
|
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
|
import pretender from "discourse/tests/helpers/create-pretender";
|
|
import { query } from "discourse/tests/helpers/qunit-helpers";
|
|
import ChatChannel from "discourse/plugins/chat/discourse/models/chat-channel";
|
|
|
|
module(
|
|
"Discourse Chat | Component | chat-composer placeholder",
|
|
function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
test("direct message to self shows Jot something down", async function (assert) {
|
|
pretender.get("/chat/emojis.json", () => [200, [], {}]);
|
|
|
|
this.currentUser.set("id", 1);
|
|
this.channel = ChatChannel.create({
|
|
chatable_type: "DirectMessage",
|
|
chatable: {
|
|
users: [{ id: 1 }],
|
|
},
|
|
});
|
|
|
|
await render(hbs`<Chat::Composer::Channel @channel={{this.channel}} />`);
|
|
|
|
assert.strictEqual(
|
|
query(".chat-composer__input").placeholder,
|
|
"Jot something down"
|
|
);
|
|
});
|
|
|
|
test("direct message to multiple folks shows their names", async function (assert) {
|
|
pretender.get("/chat/emojis.json", () => [200, [], {}]);
|
|
|
|
this.channel = ChatChannel.create({
|
|
chatable_type: "DirectMessage",
|
|
chatable: {
|
|
group: true,
|
|
users: [
|
|
{ name: "Tomtom" },
|
|
{ name: "Steaky" },
|
|
{ username: "zorro" },
|
|
],
|
|
},
|
|
});
|
|
|
|
await render(hbs`<Chat::Composer::Channel @channel={{this.channel}} />`);
|
|
|
|
assert.strictEqual(
|
|
query(".chat-composer__input").placeholder,
|
|
"Chat with Tomtom, Steaky, @zorro"
|
|
);
|
|
});
|
|
|
|
test("message to channel shows send message to channel name", async function (assert) {
|
|
pretender.get("/chat/emojis.json", () => [200, [], {}]);
|
|
|
|
this.channel = ChatChannel.create({
|
|
chatable_type: "Category",
|
|
title: "just-cats",
|
|
});
|
|
|
|
await render(hbs`<Chat::Composer::Channel @channel={{this.channel}} />`);
|
|
|
|
assert.strictEqual(
|
|
query(".chat-composer__input").placeholder,
|
|
"Chat in #just-cats"
|
|
);
|
|
});
|
|
}
|
|
);
|