mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 04:08:14 +08:00
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:
@ -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
|
||||
|
@ -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
|
||||
|
44
plugins/chat/spec/system/shortcuts/drawer_spec.rb
Normal file
44
plugins/chat/spec/system/shortcuts/drawer_spec.rb
Normal 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
|
Reference in New Issue
Block a user