diff --git a/Gemfile.lock b/Gemfile.lock index 0b405c38641..4c2a77e2f99 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM coderay (1.1.3) concurrent-ruby (1.3.5) connection_pool (2.5.0) - content_block_tools (0.3.1) + content_block_tools (0.4.2) actionview (>= 6) crack (1.0.0) bigdecimal diff --git a/lib/engines/content_block_manager/app/models/content_block_manager/content_block/edition.rb b/lib/engines/content_block_manager/app/models/content_block_manager/content_block/edition.rb index 6309206efbb..2c2b4dfdc51 100644 --- a/lib/engines/content_block_manager/app/models/content_block_manager/content_block/edition.rb +++ b/lib/engines/content_block_manager/app/models/content_block_manager/content_block/edition.rb @@ -22,12 +22,13 @@ def update_document_reference_to_latest_edition! document.update!(latest_edition_id: id) end - def render + def render(embed_code) ContentBlockTools::ContentBlock.new( document_type: "content_block_#{block_type}", content_id: document.content_id, title:, details:, + embed_code:, ).render end diff --git a/lib/engines/content_block_manager/app/services/content_block_manager/find_and_replace_embed_codes_service.rb b/lib/engines/content_block_manager/app/services/content_block_manager/find_and_replace_embed_codes_service.rb index 62d91a0f014..bdc01c0ca33 100644 --- a/lib/engines/content_block_manager/app/services/content_block_manager/find_and_replace_embed_codes_service.rb +++ b/lib/engines/content_block_manager/app/services/content_block_manager/find_and_replace_embed_codes_service.rb @@ -9,7 +9,7 @@ def call content_block = content_blocks.find { |c| c.document.content_id == reference.content_id } next if content_block.nil? - html.gsub!(reference.embed_code, content_block.render) + html.gsub!(reference.embed_code, content_block.render(reference.embed_code)) end html diff --git a/lib/engines/content_block_manager/app/services/content_block_manager/generate_preview_html.rb b/lib/engines/content_block_manager/app/services/content_block_manager/generate_preview_html.rb index bf6ec029ec9..9dc94ca8fdc 100644 --- a/lib/engines/content_block_manager/app/services/content_block_manager/generate_preview_html.rb +++ b/lib/engines/content_block_manager/app/services/content_block_manager/generate_preview_html.rb @@ -72,7 +72,8 @@ def replace_existing_content_blocks(nokogiri_html) def replace_blocks(nokogiri_html) content_block_spans(nokogiri_html).each do |span| - span.replace content_block_edition.render + embed_code = span["data-embed-code"] + span.replace content_block_edition.render(embed_code) end end diff --git a/lib/engines/content_block_manager/test/unit/app/models/content_block_edition_test.rb b/lib/engines/content_block_manager/test/unit/app/models/content_block_edition_test.rb index cd69f53c519..84581cd9e0b 100644 --- a/lib/engines/content_block_manager/test/unit/app/models/content_block_edition_test.rb +++ b/lib/engines/content_block_manager/test/unit/app/models/content_block_edition_test.rb @@ -178,6 +178,7 @@ class ContentBlockManager::ContentBlockEditionTest < ActiveSupport::TestCase let(:rendered_response) { "RENDERED" } let(:stub_block) { stub("ContentBlockTools::ContentBlock", render: rendered_response) } let(:document) { content_block_edition.document } + let(:embed_code) { "embed_code" } it "initializes and renders a content block" do ContentBlockTools::ContentBlock.expects(:new) @@ -186,9 +187,10 @@ class ContentBlockManager::ContentBlockEditionTest < ActiveSupport::TestCase content_id: document.content_id, title:, details:, + embed_code:, ).returns(stub_block) - assert_equal content_block_edition.render, rendered_response + assert_equal content_block_edition.render(embed_code), rendered_response end end diff --git a/lib/engines/content_block_manager/test/unit/app/services/find_and_replace_embed_codes_service_test.rb b/lib/engines/content_block_manager/test/unit/app/services/find_and_replace_embed_codes_service_test.rb index e0bbff090e9..295a1fe61d6 100644 --- a/lib/engines/content_block_manager/test/unit/app/services/find_and_replace_embed_codes_service_test.rb +++ b/lib/engines/content_block_manager/test/unit/app/services/find_and_replace_embed_codes_service_test.rb @@ -22,8 +22,8 @@ class ContentBlockManager::FindAndReplaceEmbedCodesServiceTest < ActiveSupport:: expected = "
Hello there
-#{edition_2.render}
-#{edition_1.render}
+#{edition_2.render(edition_2.document.embed_code)}
+#{edition_1.render(edition_1.document.embed_code)}
" result = ContentBlockManager::FindAndReplaceEmbedCodesService.call(html) diff --git a/lib/engines/content_block_manager/test/unit/app/services/generate_preview_html_test.rb b/lib/engines/content_block_manager/test/unit/app/services/generate_preview_html_test.rb index 43271d2e192..cafa2c8d2ea 100644 --- a/lib/engines/content_block_manager/test/unit/app/services/generate_preview_html_test.rb +++ b/lib/engines/content_block_manager/test/unit/app/services/generate_preview_html_test.rb @@ -11,13 +11,13 @@ class ContentBlockManager::GeneratePreviewHtmlTest < ActiveSupport::TestCase let(:host_base_path) { "/test" } let(:uri_mock) { mock } let(:fake_frontend_response) do - "test
" + "test
" end let(:block_render) do - " " + " " end let(:block_render_with_style) do - " " + " " end let(:expected_html) do "test
#{block_render_with_style}"