mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
DEV: Move discourse-chat
to the core repo. (#18776)
As part of this move, we are also renaming `discourse-chat` to `chat`.
This commit is contained in:
@ -0,0 +1,270 @@
|
||||
import componentTest, {
|
||||
setupRenderingTest,
|
||||
} from "discourse/tests/helpers/component-test";
|
||||
import { exists } from "discourse/tests/helpers/qunit-helpers";
|
||||
import hbs from "htmlbars-inline-precompile";
|
||||
import fabricators from "../helpers/fabricators";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
import pretender from "discourse/tests/helpers/create-pretender";
|
||||
import { CHATABLE_TYPES } from "discourse/plugins/chat/discourse/models/chat-channel";
|
||||
import { set } from "@ember/object";
|
||||
import { module } from "qunit";
|
||||
|
||||
function membershipFixture(id, options = {}) {
|
||||
options = Object.assign({}, options, { muted: false, following: true });
|
||||
|
||||
return {
|
||||
following: options.following,
|
||||
muted: options.muted,
|
||||
desktop_notification_level: "mention",
|
||||
mobile_notification_level: "mention",
|
||||
chat_channel_id: id,
|
||||
chatable_type: "Category",
|
||||
user_count: 2,
|
||||
};
|
||||
}
|
||||
|
||||
module(
|
||||
"Discourse Chat | Component | chat-channel-settings-view | Public channel - regular user",
|
||||
function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
componentTest("saving desktop notifications", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set("channel", fabricators.chatChannel());
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(
|
||||
".channel-settings-view__desktop-notification-level-selector"
|
||||
);
|
||||
await sk.expand();
|
||||
await sk.selectRowByValue("mention");
|
||||
|
||||
assert.equal(sk.header().value(), "mention");
|
||||
},
|
||||
});
|
||||
|
||||
componentTest("saving mobile notifications", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set("channel", fabricators.chatChannel());
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(
|
||||
".channel-settings-view__mobile-notification-level-selector"
|
||||
);
|
||||
await sk.expand();
|
||||
await sk.selectRowByValue("mention");
|
||||
|
||||
assert.equal(sk.header().value(), "mention");
|
||||
},
|
||||
});
|
||||
|
||||
componentTest("muted", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set("channel", fabricators.chatChannel());
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id, { muted: true }),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(".channel-settings-view__muted-selector");
|
||||
await sk.expand();
|
||||
await sk.selectRowByName("Off");
|
||||
|
||||
assert.equal(sk.header().value(), "false");
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
module(
|
||||
"Discourse Chat | Component | chat-channel-settings-view | Direct Message channel - regular user",
|
||||
function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
componentTest("saving desktop notifications", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set(
|
||||
"channel",
|
||||
fabricators.chatChannel({
|
||||
chatable_type: CHATABLE_TYPES.directMessageChannel,
|
||||
})
|
||||
);
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(
|
||||
".channel-settings-view__desktop-notification-level-selector"
|
||||
);
|
||||
await sk.expand();
|
||||
await sk.selectRowByValue("mention");
|
||||
|
||||
assert.equal(sk.header().value(), "mention");
|
||||
},
|
||||
});
|
||||
|
||||
componentTest("saving mobile notifications", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set(
|
||||
"channel",
|
||||
fabricators.chatChannel({
|
||||
chatable_type: CHATABLE_TYPES.directMessageChannel,
|
||||
})
|
||||
);
|
||||
},
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(
|
||||
".channel-settings-view__mobile-notification-level-selector"
|
||||
);
|
||||
await sk.expand();
|
||||
await sk.selectRowByValue("mention");
|
||||
|
||||
assert.equal(sk.header().value(), "mention");
|
||||
},
|
||||
});
|
||||
|
||||
componentTest("muted", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
this.set(
|
||||
"channel",
|
||||
fabricators.chatChannel({
|
||||
chatable_type: CHATABLE_TYPES.directMessageChannel,
|
||||
})
|
||||
);
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
pretender.put(
|
||||
`/chat/api/chat_channels/${this.channel.id}/notifications_settings.json`,
|
||||
() => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
membershipFixture(this.channel.id, { muted: true }),
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
const sk = selectKit(".channel-settings-view__muted-selector");
|
||||
await sk.expand();
|
||||
await sk.selectRowByName("Off");
|
||||
|
||||
assert.equal(sk.header().value(), "false");
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
module(
|
||||
"Discourse Chat | Component | chat-channel-settings-view | Public channel - admin user",
|
||||
function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
componentTest("admin actions", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
set(this.currentUser, "admin", true);
|
||||
set(this.currentUser, "has_chat_enabled", true);
|
||||
this.siteSettings.chat_enabled = true;
|
||||
|
||||
this.set("channel", fabricators.chatChannel());
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
assert.ok(exists(".close-btn"));
|
||||
assert.ok(exists(".delete-btn"));
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
module(
|
||||
"Discourse Chat | Component | chat-channel-settings-view | Archived Public channel - admin user",
|
||||
function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
componentTest("archive action", {
|
||||
template: hbs`{{chat-channel-settings-view channel=channel}}`,
|
||||
|
||||
beforeEach() {
|
||||
set(this.currentUser, "admin", true);
|
||||
set(this.currentUser, "has_chat_enabled", true);
|
||||
this.siteSettings.chat_enabled = true;
|
||||
this.siteSettings.chat_allow_archiving_channels = true;
|
||||
this.set("channel", fabricators.chatChannel());
|
||||
},
|
||||
|
||||
async test(assert) {
|
||||
assert.ok(exists(".archive-btn"));
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user