discourse/plugins/chat/spec/system/user_chat_preferences_spec.rb
Joffrey JAFFEUX fef0225a22
FIX: correctly check chat tab is present (#23200)
Prior to this fix we would test by visiting the tab which could create a false positive, as the tab could not be present but we could still access the tab, the implementation and tests have been changed to correctly ensure this.
2023-08-23 13:06:29 +02:00

79 lines
2.2 KiB
Ruby
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.

# frozen_string_literal: true
RSpec.describe "User chat preferences", type: :system do
fab!(:current_user) { Fabricate(:user) }
let(:chat) { PageObjects::Pages::Chat.new }
before do
chat_system_bootstrap
sign_in(current_user)
end
context "when chat disabled" do
before do
SiteSetting.chat_enabled = false
sign_in(current_user)
end
it "doesnt show the tab" do
visit("/my/preferences")
expect(page).to have_no_css(".user-nav__preferences-chat", visible: :all)
end
it "shows a not found page" do
visit("/my/preferences/chat")
expect(page).to have_content(I18n.t("page_not_found.title"))
end
end
it "can select chat sound" do
visit("/my/preferences")
find(".user-nav__preferences-chat", visible: :all).click
select_kit = PageObjects::Components::SelectKit.new("#user_chat_sounds")
select_kit.expand
select_kit.select_row_by_value("bell")
find(".save-changes").click
expect(select_kit).to have_selected_value("bell")
end
it "can select header_indicator_preference" do
visit("/my/preferences")
find(".user-nav__preferences-chat", visible: :all).click
select_kit = PageObjects::Components::SelectKit.new("#user_chat_header_indicator_preference")
select_kit.expand
select_kit.select_row_by_value("dm_and_mentions")
find(".save-changes").click
expect(select_kit).to have_selected_value("dm_and_mentions")
end
it "can select separate sidebar mode" do
visit("/my/preferences")
find(".user-nav__preferences-chat", visible: :all).click
select_kit = PageObjects::Components::SelectKit.new("#user_chat_separate_sidebar_mode")
select_kit.expand
select_kit.select_row_by_value("fullscreen")
find(".save-changes").click
expect(select_kit).to have_selected_value("fullscreen")
end
context "as an admin on another user's preferences" do
fab!(:current_user) { Fabricate(:admin) }
fab!(:user_1) { Fabricate(:user) }
before { sign_in(current_user) }
it "allows to change settings" do
visit("/u/#{user_1.username}/preferences")
find(".user-nav__preferences-chat", visible: :all).click
expect(page).to have_current_path("/u/#{user_1.username}/preferences/chat")
end
end
end