Sha256: 7a087d6a385da3c6931011e00d588d30240053724a1c1c4d3b6d1b8e19484c09

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require 'rails_helper'

class Transformer
  def initialize(content:, key:)
    @content = content
    @key = key
  end

  # Must return content.
  def transform
    @content.gsub("Amazon", "Etsy")
  end

  class << self
    def transforms?(key:)
      key == :advert_header
    end
  end
end

describe SnippetPresenter do
  describe "with a transform class" do
    let(:code) { "<p>Buy this from Amazon.</p>" }
    let(:view) { ActionController::Base.new.view_context }

    subject(:header_presenter) { described_class.new(view: view, key: :advert_header) }
    subject(:footer_presenter) { described_class.new(view: view, key: :advert_footer) }

    describe "#call" do
      before do
        ENV["TRANSFORM"] = "1"
        SnippetStoreService.update(snippet_key(:advert_header), code)
        SnippetStoreService.update(snippet_key(:advert_footer), code)
      end

      it "transforms the content" do
        expect(header_presenter.call).to eq("<div class=\"snippet advert_header\"><p>Buy this from Etsy.</p></div>")
      end

      it "does not transform the content if key is not allowed" do
        expect(footer_presenter.call).to eq("<div class=\"snippet advert_footer\"><p>Buy this from Amazon.</p></div>")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redis_snippets-1.0.2 spec/app/presenters/snippet_presenter_transform_spec.rb
redis_snippets-1.0.1 spec/app/presenters/snippet_presenter_transform_spec.rb