mirror of
https://github.com/discourse/discourse.git
synced 2024-12-21 09:43:48 +08:00
d5b944f1de
This change adds the chat direct message button to user profiles, similarly to how we use it within the user card.
77 lines
1.9 KiB
Ruby
77 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
RSpec.describe "User card", type: :system do
|
||
fab!(:current_user) { Fabricate(:user) }
|
||
fab!(:topic_1) { Fabricate(:topic) }
|
||
|
||
let(:chat) { PageObjects::Pages::Chat.new }
|
||
|
||
before { chat_system_bootstrap }
|
||
|
||
shared_examples "not showing chat button" do
|
||
it "doesn’t show the chat button" do
|
||
expect(page).to have_no_css(".chat-direct-message-btn")
|
||
end
|
||
end
|
||
|
||
shared_examples "showing chat button" do
|
||
it "shows the chat button" do
|
||
expect(page).to have_css(".chat-direct-message-btn")
|
||
end
|
||
end
|
||
|
||
context "when user" do
|
||
context "when chat disabled" do
|
||
before do
|
||
SiteSetting.chat_enabled = false
|
||
sign_in(current_user)
|
||
end
|
||
|
||
context "when showing user card" do
|
||
before do
|
||
visit("/")
|
||
find("[data-user-card='#{topic_1.user.username}'").click
|
||
end
|
||
|
||
include_examples "not showing chat button"
|
||
end
|
||
end
|
||
|
||
context "when chat enabled" do
|
||
before { sign_in(current_user) }
|
||
|
||
context "when showing user card" do
|
||
before do
|
||
visit("/")
|
||
find("[data-user-card='#{topic_1.user.username}'").click
|
||
end
|
||
|
||
include_examples "showing chat button"
|
||
|
||
context "when clicking chat button" do
|
||
before { find(".chat-direct-message-btn").click }
|
||
|
||
it "opens correct channel" do
|
||
# at this point the ChatChannel is not created yet
|
||
expect(page).to have_css(".chat-drawer.is-expanded")
|
||
expect(page).to have_css(
|
||
".chat-drawer.is-expanded[data-chat-channel-id='#{Chat::Channel.last.id}']",
|
||
)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
context "when anonymous" do
|
||
context "when showing user card" do
|
||
before do
|
||
visit("/")
|
||
find("[data-user-card='#{topic_1.user.username}'").click
|
||
end
|
||
|
||
include_examples "not showing chat button"
|
||
end
|
||
end
|
||
end
|