REFACTOR: naming and state refactor (#19187)

- better handling of drawer state using chat state manager
- removes various float and topic occurrences to use drawer
- ensures user can chat before doing a lot of chat setup
- fixes a bug which was creating presence errors in tests
- removes dead code
This commit is contained in:
Joffrey JAFFEUX
2022-11-25 14:15:38 +01:00
committed by GitHub
parent cad2fe6089
commit 84c1cc70d6
43 changed files with 401 additions and 391 deletions

View File

@ -34,7 +34,7 @@ RSpec.describe "Navigation", type: :system, js: true do
visit("/")
chat_page.open_from_header
expect(page).to have_css(".topic-chat-container.expanded.visible")
expect(page).to have_css(".chat-drawer.is-expanded")
end
end
@ -62,12 +62,12 @@ RSpec.describe "Navigation", type: :system, js: true do
chat_page.open
chat_page.minimize_full_page
expect(page).to have_css(".topic-chat-container.expanded.visible")
expect(page).to have_css(".chat-drawer.is-expanded")
visit("/")
chat_page.open_from_header
expect(page).to have_css(".topic-chat-container.expanded.visible")
expect(page).to have_css(".chat-drawer.is-expanded")
end
end
@ -114,7 +114,7 @@ RSpec.describe "Navigation", type: :system, js: true do
find("a", text: "foo").click
expect(page).to have_css(
".topic-chat-container.expanded.visible .chat-message-container.highlighted[data-id='#{message.id}']",
".chat-drawer.is-expanded .chat-message-container.highlighted[data-id='#{message.id}']",
)
end
end
@ -156,7 +156,7 @@ RSpec.describe "Navigation", type: :system, js: true do
sidebar_page.open_draft_channel
expect(page).to have_current_path("/")
expect(page).to have_css(".topic-chat-container.expanded.visible .direct-message-creator")
expect(page).to have_css(".chat-drawer.is-expanded .direct-message-creator")
end
end
@ -167,7 +167,7 @@ RSpec.describe "Navigation", type: :system, js: true do
chat_drawer_page.open_draft_channel
expect(page).to have_current_path("/")
expect(page).to have_css(".topic-chat-container.expanded.visible .direct-message-creator")
expect(page).to have_css(".chat-drawer.is-expanded .direct-message-creator")
end
end
@ -180,7 +180,7 @@ RSpec.describe "Navigation", type: :system, js: true do
sidebar_page.open_draft_channel
expect(page).to have_current_path("/chat/draft-channel")
expect(page).not_to have_css(".topic-chat-container.expanded.visible")
expect(page).not_to have_css(".chat-drawer.is-expanded")
end
end
@ -191,7 +191,7 @@ RSpec.describe "Navigation", type: :system, js: true do
chat_drawer_page.open_browse
expect(page).to have_current_path("/chat/browse/open")
expect(page).not_to have_css(".topic-chat-container.expanded.visible")
expect(page).not_to have_css(".chat-drawer.is-expanded")
end
end
@ -202,7 +202,7 @@ RSpec.describe "Navigation", type: :system, js: true do
sidebar_page.open_browse
expect(page).to have_current_path("/chat/browse/open")
expect(page).not_to have_css(".topic-chat-container.expanded.visible")
expect(page).not_to have_css(".chat-drawer.is-expanded")
end
end
@ -216,7 +216,7 @@ RSpec.describe "Navigation", type: :system, js: true do
chat_page.open_from_header
expect(page).to have_current_path("/")
expect(page).to have_css(".topic-chat-container.expanded.visible")
expect(page).to have_css(".chat-drawer.is-expanded")
expect(page).to have_content(category_channel_2.title)
end
end

View File

@ -3,7 +3,7 @@
module PageObjects
module Pages
class ChatDrawer < PageObjects::Pages::Base
VISIBLE_DRAWER = ".topic-chat-container.expanded.visible"
VISIBLE_DRAWER = ".chat-drawer.is-expanded"
def open_browse
find("#{VISIBLE_DRAWER} .open-browse-page-btn").click
end
@ -13,11 +13,11 @@ module PageObjects
end
def close
find("#{VISIBLE_DRAWER} .topic-chat-drawer-header__close-btn").click
find("#{VISIBLE_DRAWER} .chat-drawer-header__close-btn").click
end
def open_index
find("#{VISIBLE_DRAWER} .topic-chat-drawer-header__return-to-channels-btn").click
find("#{VISIBLE_DRAWER} .chat-drawer-header__return-to-channels-btn").click
end
def open_channel(channel)
@ -27,7 +27,7 @@ module PageObjects
end
def maximize
find("#{VISIBLE_DRAWER} .topic-chat-drawer-header__full-screen-btn").click
find("#{VISIBLE_DRAWER} .chat-drawer-header__full-screen-btn").click
end
end
end

View File

@ -0,0 +1,44 @@
# frozen_string_literal: true
RSpec.describe "Navigation", type: :system, js: true do
fab!(:user_1) { Fabricate(:admin) }
fab!(:category_channel_1) { Fabricate(:category_channel) }
fab!(:category_channel_2) { Fabricate(:category_channel) }
let(:chat_page) { PageObjects::Pages::Chat.new }
let(:chat_drawer_page) { PageObjects::Pages::ChatDrawer.new }
before do
chat_system_bootstrap(user_1, [category_channel_1, category_channel_2])
sign_in(user_1)
end
context "when drawer is closed" do
before { visit("/") }
context "when pressing dash" do
it "opens the drawer" do
find("body").send_keys("-")
expect(page).to have_css(".chat-drawer.is-expanded")
end
end
end
context "when drawer is opened" do
before do
visit("/")
chat_page.open_from_header
end
context "when pressing escape" do
it "opens the drawer" do
expect(page).to have_css(".chat-drawer.is-expanded")
chat_drawer_page.open_channel(category_channel_1)
find(".chat-composer-input").send_keys(:escape)
expect(page).to_not have_css(".chat-drawer.is-expanded")
end
end
end
end