Sha256: 24073feef7196aee47e63c2a73c534fef44e0da5c89353035c6470096ba6da69

Contents?: true

Size: 1.25 KB

Versions: 8

Compression:

Stored size: 1.25 KB

Contents

require "rails_helper"

describe MagicLamp::RenderCatcher do
  subject { MagicLamp::RenderCatcher.new(MagicLamp::Configuration.new) }

  it_behaves_like "it has callbacks"

  context "attr_accessor" do
    it { is_expected.to attr_accessorize :render_argument }
  end

  describe "#render" do
    it "saves its first arguments as render argument" do
      subject.render :foo, :bar, :baz
      expect(subject.render_argument).to eq(:foo)
    end
  end

  describe "#first_render_argument" do
    it "returns the first argument to render given a block" do
      result = subject.first_render_argument { render :foo, :bar, :baz }
      expect(result).to eq(:foo)
    end

    it "executes callbacks around the evaluation of the block" do
      expect(subject).to receive(:execute_callbacks_around).and_call_original
      subject.first_render_argument { render :foo }
      expect(subject.render_argument).to eq(:foo)
    end
  end

  describe "#method_missing" do
    it "does nothing when an unknown method is called" do
      expect do
        subject.foo
        subject.foo = "what"
        subject.bar(1, 2, 3) { |x| "never gonna happen" }
      end.to_not raise_error
    end

    it "returns itself" do
      expect(subject.foo.bar.baz).to eq(subject)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
magic_lamp-1.8.1 spec/lib/render_catcher_spec.rb
magic_lamp-1.8.0 spec/lib/render_catcher_spec.rb
magic_lamp-1.7.0 spec/lib/render_catcher_spec.rb
magic_lamp-1.6.2 spec/lib/render_catcher_spec.rb
magic_lamp-1.6.1 spec/lib/render_catcher_spec.rb
magic_lamp-1.6.0 spec/lib/render_catcher_spec.rb
magic_lamp-1.5.2 spec/lib/render_catcher_spec.rb
magic_lamp-1.5.1 spec/lib/render_catcher_spec.rb