mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 15:49:55 +08:00
41f8bff2c3
Why this change? It is very unlikely that we need to ever JS for system tests considering that we rely on a JS framework on the frontend.
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 buttton" do
|
||
expect(page).to have_no_css(".user-card-chat-btn")
|
||
end
|
||
end
|
||
|
||
shared_examples "showing chat button" do
|
||
it "shows the chat buttton" do
|
||
expect(page).to have_css(".user-card-chat-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(".user-card-chat-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
|