mirror of
https://github.com/discourse/discourse.git
synced 2024-12-02 10:36:18 +08:00
72 lines
2.2 KiB
Ruby
72 lines
2.2 KiB
Ruby
|
# frozen_string_literal: true
|
|||
|
|
|||
|
describe "Composer - discard draft modal", type: :system do
|
|||
|
fab!(:current_user) { Fabricate(:admin) }
|
|||
|
fab!(:topic_1) { Fabricate(:topic) }
|
|||
|
|
|||
|
let(:topic_page) { PageObjects::Pages::Topic.new }
|
|||
|
let(:discard_draft_modal) { PageObjects::Modals::DiscardDraft.new }
|
|||
|
let(:composer) { PageObjects::Components::Composer.new }
|
|||
|
|
|||
|
before { sign_in(current_user) }
|
|||
|
|
|||
|
context "when editing different post" do
|
|||
|
fab!(:post_1) { Fabricate(:post, topic: topic_1, user: current_user) }
|
|||
|
fab!(:post_2) { Fabricate(:post, topic: topic_1, user: current_user) }
|
|||
|
|
|||
|
it "shows the discard modal" do
|
|||
|
topic_page.visit_topic(post_1.topic)
|
|||
|
topic_page.click_post_action_button(post_1, :edit)
|
|||
|
|
|||
|
composer.fill_content("a b c d e f g")
|
|||
|
composer.minimize
|
|||
|
topic_page.click_post_action_button(post_2, :edit)
|
|||
|
|
|||
|
expect(discard_draft_modal).to be_open
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
context "when re-editing the first post" do
|
|||
|
fab!(:post_1) { Fabricate(:post, topic: topic_1, user: current_user) }
|
|||
|
|
|||
|
it "doesn’t show the discard modal" do
|
|||
|
topic_page.visit_topic(post_1.topic)
|
|||
|
topic_page.click_post_action_button(post_1, :edit)
|
|||
|
|
|||
|
composer.fill_content("a b c d e f g")
|
|||
|
composer.minimize
|
|||
|
topic_page.click_post_action_button(post_1, :edit)
|
|||
|
|
|||
|
expect(discard_draft_modal).to be_closed
|
|||
|
expect(composer).to be_opened
|
|||
|
|
|||
|
topic_page.click_post_action_button(post_1, :edit)
|
|||
|
|
|||
|
expect(discard_draft_modal).to be_closed
|
|||
|
expect(composer).to be_opened
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
context "when re-editing the second post" do
|
|||
|
fab!(:post_1) { Fabricate(:post, topic: topic_1, user: current_user) }
|
|||
|
fab!(:post_2) { Fabricate(:post, topic: topic_1, user: current_user) }
|
|||
|
|
|||
|
it "doesn’t show the discard modal" do
|
|||
|
topic_page.visit_topic(post_1.topic)
|
|||
|
topic_page.click_post_action_button(post_2, :edit)
|
|||
|
|
|||
|
composer.fill_content("a b c d e f g")
|
|||
|
composer.minimize
|
|||
|
topic_page.click_post_action_button(post_2, :edit)
|
|||
|
|
|||
|
expect(discard_draft_modal).to be_closed
|
|||
|
expect(composer).to be_opened
|
|||
|
|
|||
|
topic_page.click_post_action_button(post_2, :edit)
|
|||
|
|
|||
|
expect(discard_draft_modal).to be_closed
|
|||
|
expect(composer).to be_opened
|
|||
|
end
|
|||
|
end
|
|||
|
end
|