mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 07:53:39 +08:00
49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
RSpec.describe "Removing channel", type: :system do
|
||
|
fab!(:current_user) { Fabricate(:user) }
|
||
|
|
||
|
let(:chat_page) { PageObjects::Pages::Chat.new }
|
||
|
let(:chat_sidebar_page) { PageObjects::Pages::Sidebar.new }
|
||
|
|
||
|
before do
|
||
|
chat_system_bootstrap
|
||
|
sign_in(current_user)
|
||
|
end
|
||
|
|
||
|
context "when removing last followed channel" do
|
||
|
fab!(:channel_1) { Fabricate(:chat_channel) }
|
||
|
fab!(:channel_2) { Fabricate(:direct_message_channel, users: [current_user, Fabricate(:user)]) }
|
||
|
|
||
|
before do
|
||
|
Fabricate(
|
||
|
:user_chat_channel_membership,
|
||
|
user: current_user,
|
||
|
chat_channel: channel_1,
|
||
|
following: false,
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it "redirects to browse page" do
|
||
|
chat_page.visit_channel(channel_2)
|
||
|
chat_sidebar_page.remove_channel(channel_2)
|
||
|
|
||
|
expect(page).to have_current_path("/chat/browse/open")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when removing channel" do
|
||
|
fab!(:channel_1) { Fabricate(:chat_channel) }
|
||
|
fab!(:channel_2) { Fabricate(:direct_message_channel, users: [current_user, Fabricate(:user)]) }
|
||
|
|
||
|
before { channel_1.add(current_user) }
|
||
|
|
||
|
it "redirects to another followed channgel" do
|
||
|
chat_page.visit_channel(channel_2)
|
||
|
chat_sidebar_page.remove_channel(channel_2)
|
||
|
|
||
|
expect(page).to have_current_path(chat.channel_path(channel_1.slug, channel_1.id))
|
||
|
end
|
||
|
end
|
||
|
end
|