mirror of
https://github.com/discourse/discourse.git
synced 2024-12-06 13:13:41 +08:00
60c67afba4
- Improves styleguide support - Adds toggle color scheme to styleguide - Adds properties mutators to styleguide - Attempts to quit a session as soon as done with it in system specs, this should at least free resources faster - Refactors fabricators to simplify them - Adds more fabricators (uploads for example) - Starts implementing components pattern in system specs - Uses Chat::Message creator to create messages in system specs, this should help to have more real specs as the side effects should now happen
93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
|
import { exists, query } from "discourse/tests/helpers/qunit-helpers";
|
|
import hbs from "htmlbars-inline-precompile";
|
|
import { render } from "@ember/test-helpers";
|
|
import { module, test } from "qunit";
|
|
import fabricators from "discourse/plugins/chat/discourse/lib/fabricators";
|
|
|
|
module(
|
|
"Discourse Chat | Component | chat-channel-preview-card",
|
|
function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
hooks.beforeEach(function () {
|
|
this.set("channel", fabricators.channel({ chatable_type: "Category" }));
|
|
|
|
this.channel.description = "Important stuff is announced here.";
|
|
this.channel.title = "announcements";
|
|
this.channel.meta = { can_join_chat_channel: true };
|
|
this.currentUser.set("has_chat_enabled", true);
|
|
this.siteSettings.chat_enabled = true;
|
|
});
|
|
|
|
test("channel title", async function (assert) {
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.strictEqual(
|
|
query(".chat-channel-title__name").innerText,
|
|
this.channel.title,
|
|
"it shows the channel title"
|
|
);
|
|
|
|
assert.true(
|
|
exists(query(".chat-channel-title__category-badge")),
|
|
"it shows the category hashtag badge"
|
|
);
|
|
});
|
|
|
|
test("channel description", async function (assert) {
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.strictEqual(
|
|
query(".chat-channel-preview-card__description").innerText,
|
|
this.channel.description,
|
|
"the channel description is shown"
|
|
);
|
|
});
|
|
|
|
test("no channel description", async function (assert) {
|
|
this.channel.description = null;
|
|
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.false(
|
|
exists(".chat-channel-preview-card__description"),
|
|
"no line is left for the channel description if there is none"
|
|
);
|
|
|
|
assert.true(
|
|
exists(".chat-channel-preview-card.-no-description"),
|
|
"it adds a modifier class for styling"
|
|
);
|
|
});
|
|
|
|
test("join", async function (assert) {
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.true(
|
|
exists(".toggle-channel-membership-button.-join"),
|
|
"it shows the join channel button"
|
|
);
|
|
});
|
|
|
|
test("browse all", async function (assert) {
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.true(
|
|
exists(".chat-channel-preview-card__browse-all"),
|
|
"it shows a link to browse all channels"
|
|
);
|
|
});
|
|
|
|
test("closed channel", async function (assert) {
|
|
this.channel.status = "closed";
|
|
await render(hbs`<ChatChannelPreviewCard @channel={{this.channel}} />`);
|
|
|
|
assert.false(
|
|
exists(".chat-channel-preview-card__join-channel-btn"),
|
|
"it does not show the join channel button"
|
|
);
|
|
});
|
|
}
|
|
);
|