Sha256: 374a695033902e3b83e9f6fb1dd568d153d133ebc155637d50f8e45e37cec8a1
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true require "spec_helper" describe Split::EncapsulatedHelper do include Split::EncapsulatedHelper def params raise NoMethodError, "This method is not really defined" end describe "ab_test" do before do allow_any_instance_of(Split::EncapsulatedHelper::ContextShim).to receive(:ab_user) .and_return(mock_user) end it "should not raise an error when params raises an error" do expect { params }.to raise_error(NoMethodError) expect { ab_test("link_color", "blue", "red") }.not_to raise_error end it "calls the block with selected alternative" do expect { |block| ab_test("link_color", "red", "red", &block) }.to yield_with_args("red", {}) end context "inside a view" do it "works inside ERB" do require "erb" template = ERB.new(<<-ERB.split(/\s+/s).map(&:strip).join(" "), nil, "%") foo <% ab_test(:foo, '1', '2') do |alt, meta| %> static <%= alt %> <% end %> ERB expect(template.result(binding)).to match(/foo static \d/) end end end describe "context" do it "is passed in shim" do ctx = Class.new { include Split::EncapsulatedHelper public :session }.new expect(ctx).to receive(:session) { {} } expect { ctx.ab_test("link_color", "blue", "red") }.not_to raise_error end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
split-4.0.3 | spec/encapsulated_helper_spec.rb |
split-4.0.2 | spec/encapsulated_helper_spec.rb |