Sha256: fff5c312bc451b33d9705d30b4d1237d3a05f29ac58c3fc370614a6afe1bc54e

Contents?: true

Size: 1.55 KB

Versions: 1

Compression:

Stored size: 1.55 KB

Contents

require "spec_helper"

describe Schematic::Generator::Sandbox do
  subject { Schematic::Generator::Sandbox.new(klass) }
  let(:klass) { Object }

  describe "ignoring elements" do
    it "should add the method to the ignored list" do
      subject.run do
        ignore :foo
      end
      subject.ignored_elements.should include(:foo)
    end

    it "accepts multiple fields" do
      subject.run do
        ignore :foo, :bar
      end
      subject.ignored_elements.should include(:foo)
      subject.ignored_elements.should include(:bar)
    end
  end

  describe "adding elements" do
    context "given a single element" do
      it "should add the method to the element list" do
        subject.run do
          add :foo
        end
        subject.added_elements.keys.should include(:foo)
      end
    end

    context "nesting elements" do
      it "should add the method to the element list" do
        subject.run do
          add :foo => { :bar => nil }
        end
        subject.added_elements[:foo].should == { :bar => nil }
      end
    end

    context "sequence of subelements" do
      it "should add the method to the element list" do
        subject.run do
          add :foo => [:bar]
        end
        subject.added_elements[:foo].should == [:bar]
      end
    end
  end

  describe "methods on original object get called when not difined in sandbox module" do
    before do
      klass.stub(:foo)
    end

    it "should delegate missing methods to klass" do
      klass.should_receive(:foo)

      subject.run do
        self.foo
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
schematic-0.4.2 spec/schematic/generator/sandbox_spec.rb