Sha256: 240a7a2cea7798f78e30f449e8cda8163b0af2aba17d59d82008e6145096a25b
Contents?: true
Size: 1.38 KB
Versions: 3
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(lambda { 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
split-4.0.1 | spec/encapsulated_helper_spec.rb |
split-4.0.0.pre2 | spec/encapsulated_helper_spec.rb |
split-4.0.0.pre | spec/encapsulated_helper_spec.rb |