From 4b043a2a82c9822e7056231bbcba9caca97079ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Tue, 9 Apr 2024 20:25:05 +0200 Subject: [PATCH] DEV: refactor morphed preview specs --- ...review_spec.rb => morphed_preview_spec.rb} | 10 ++-- spec/system/composer/morphed_preview_spec.rb | 41 +++++++++++++++ spec/system/composer/preview_spec.rb | 51 ------------------- 3 files changed, 46 insertions(+), 56 deletions(-) rename plugins/discourse-details/spec/system/{preview_spec.rb => morphed_preview_spec.rb} (82%) create mode 100644 spec/system/composer/morphed_preview_spec.rb delete mode 100644 spec/system/composer/preview_spec.rb diff --git a/plugins/discourse-details/spec/system/preview_spec.rb b/plugins/discourse-details/spec/system/morphed_preview_spec.rb similarity index 82% rename from plugins/discourse-details/spec/system/preview_spec.rb rename to plugins/discourse-details/spec/system/morphed_preview_spec.rb index bcdea1a0419..b379e4fe912 100644 --- a/plugins/discourse-details/spec/system/preview_spec.rb +++ b/plugins/discourse-details/spec/system/morphed_preview_spec.rb @@ -1,16 +1,16 @@ # frozen_string_literal: true -describe "Composer Preview", type: :system do +describe "Morphed Composer Preview", type: :system do fab!(:user) { Fabricate(:user, refresh_auto_groups: true) } let(:composer) { PageObjects::Components::Composer.new } - before { sign_in user } - - it "keeps details element open when morphing content" do + before do SiteSetting.enable_diffhtml_preview = true - + sign_in user visit("/new-topic") + end + it "keeps details element open" do composer.type_content <<~MD [details=Velcro] What a rip-off! diff --git a/spec/system/composer/morphed_preview_spec.rb b/spec/system/composer/morphed_preview_spec.rb new file mode 100644 index 00000000000..702da839f95 --- /dev/null +++ b/spec/system/composer/morphed_preview_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +describe "Morphed Composer Preview", type: :system do + fab!(:user) { Fabricate(:user, username: "bob", refresh_auto_groups: true) } + let(:composer) { PageObjects::Components::Composer.new } + + before do + SiteSetting.enable_diffhtml_preview = true + sign_in user + visit("/new-topic") + end + + it "correctly morphs code blocks" do + composer.fill_content <<~MD + ```js + const = { + id: t.name, + text: t.name, + name: t.name, + ``` + MD + + within(composer.preview) { expect(find("code.lang-js")).to have_text("const = {") } + + composer.move_cursor_after("const") + composer.type_content("ant") + + within(composer.preview) { expect(find("code.lang-js")).to have_text("constant = {") } + end + + it "correctly morphs mentions" do + composer.fill_content("@bob text") + + within(composer.preview) { expect(find("a.mention")).to have_text("@bob") } + + composer.select_all + composer.type_content("@system") + + within(composer.preview) { expect(find("a.mention")).to have_text("@system") } + end +end diff --git a/spec/system/composer/preview_spec.rb b/spec/system/composer/preview_spec.rb deleted file mode 100644 index b17e4238c15..00000000000 --- a/spec/system/composer/preview_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -# frozen_string_literal: true - -describe "Composer Preview", type: :system do - fab!(:user) { Fabricate(:user, username: "bob", refresh_auto_groups: true) } - let(:composer) { PageObjects::Components::Composer.new } - - before { sign_in user } - - it "correctly updates code blocks in diffhtml preview" do - SiteSetting.enable_diffhtml_preview = true - - visit("/latest") - find("#create-topic").click - - expect(composer).to have_composer_input - composer.fill_content <<~MD - ```rb - const = { - id: t.name, - text: t.name, - name: t.name, - ``` - MD - - within(composer.preview) { expect(find("code.language-ruby")).to have_content("const = {") } - - composer.move_cursor_after("const") - composer.type_content("ant") - - within(composer.preview) { expect(find("code.language-ruby")).to have_content("constant = {") } - end - - it "correctly updates mentions in diffhtml preview" do - SiteSetting.enable_diffhtml_preview = true - - visit("/latest") - find("#create-topic").click - - expect(composer).to have_composer_input - composer.fill_content <<~MD - @bob text - MD - - within(composer.preview) { expect(page.find("a.mention")).to have_text("@bob") } - - composer.select_all - composer.type_content("@system") - - within(composer.preview) { expect(page.find("a.mention")).to have_text("@system") } - end -end