mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 05:23:37 +08:00
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-user-card-btn")
|
||
end
|
||
end
|
||
|
||
shared_examples "showing chat button" do
|
||
it "shows the chat button" do
|
||
expect(page).to have_css(".chat-user-card-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-user-card-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
|