# 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 do current_user.upsert_custom_fields(::Chat::LAST_CHAT_CHANNEL_ID => channel_1.id) channel_1.add(current_user) end 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