mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 21:03:45 +08:00
5d2ec6461d
This is extracted from #22390. This patch simplifies a little how we handle uploads in chat, relying on ActiveRecord mechanisms instead of calling custom methods. This also makes `Chat::Message#validate_message` a “real” AR validation, meaning it will run automatically when `#valid?` is called.
40 lines
1.2 KiB
Ruby
40 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
RSpec.describe "Channel message selection", type: :system do
|
||
fab!(:current_user) { Fabricate(:user) }
|
||
fab!(:channel_1) { Fabricate(:chat_channel) }
|
||
fab!(:message_1) { Fabricate(:chat_message, chat_channel: channel_1) }
|
||
|
||
let(:chat) { PageObjects::Pages::Chat.new }
|
||
let(:channel) { PageObjects::Pages::ChatChannel.new }
|
||
let(:image) do
|
||
Fabricate(
|
||
:upload,
|
||
original_filename: "test_image.jpg",
|
||
width: 400,
|
||
height: 300,
|
||
extension: "jpg",
|
||
)
|
||
end
|
||
|
||
before do
|
||
chat_system_bootstrap
|
||
channel_1.add(current_user)
|
||
sign_in(current_user)
|
||
message_1.uploads = [image]
|
||
end
|
||
|
||
it "can collapse/expand an image and still have lightbox working" do
|
||
chat.visit_channel(channel_1)
|
||
|
||
find(".chat-message-collapser-button").click
|
||
expect(page).to have_css(".chat-message-collapser-body.hidden", visible: :false)
|
||
find(".chat-message-collapser-button").click
|
||
expect(page).to have_no_css(".chat-message-collapser-body.hidden")
|
||
find(".chat-img-upload").click
|
||
|
||
# visible false is because the upload doesn’t exist but it's enough to know lightbox is working
|
||
expect(page).to have_css(".mfp-image-holder img[src*='#{image.url}']", visible: false)
|
||
end
|
||
end
|