discourse/plugins/chat/test/javascripts/components/chat-user-card-button-test.js
David Battersby d5b944f1de
FEATURE: add chat direct message button to user profile (#26135)
This change adds the chat direct message button to user profiles, similarly to how we use it within the user card.
2024-03-18 11:17:37 +08:00

60 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
import { module, test } from "qunit";
import sinon from "sinon";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import fabricators from "discourse/plugins/chat/discourse/lib/fabricators";
module(
"Discourse Chat | Component | <Chat::DirectMessageButton />",
function (hooks) {
setupRenderingTest(hooks);
test("when current user can send direct messages", async function (assert) {
sinon
.stub(this.owner.lookup("service:chat"), "userCanDirectMessage")
.value(true);
this.user = fabricators.user();
await render(
hbs`<Chat::DirectMessageButton @user={{user}} @modal={{true}} />`
);
assert.dom(".chat-direct-message-btn").exists("it shows the chat button");
});
test("when current user cant send direct messages", async function (assert) {
sinon
.stub(this.owner.lookup("service:chat"), "userCanDirectMessage")
.value(false);
this.user = fabricators.user();
await render(
hbs`<Chat::DirectMessageButton @user={{user}} @modal={{true}} />`
);
assert
.dom(".chat-direct-message-btn")
.doesNotExist("it doesnt show the chat button");
});
test("when displayed user is suspended", async function (assert) {
sinon
.stub(this.owner.lookup("service:chat"), "userCanDirectMessage")
.value(true);
this.user = fabricators.user({
suspended_till: moment().add(1, "year").toDate(),
});
await render(
hbs`<Chat::DirectMessageButton @user={{user}} @modal={{true}} />`
);
assert
.dom(".chat-direct-message-btn")
.doesNotExist("it doesnt show the chat button");
});
}
);