Sha256: bd4a5b54329deb1c417ff2a68b880db1e4d0c9a6b6686543c1ff8354bafbd432

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

require "spec_helper"

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

  describe "ignoring elements" do
    context "on the base element" 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

    context "on nested elements" do
      it "should remove the method to the element list" do
        subject.run do
          ignore :foo => [:bar]
        end
        subject.ignored_elements[:foo].should == [:bar]
      end
    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 "requiring elements" do
    it "should add the method to the required list" do
      subject.run do
        required :foo
      end
      subject.required_elements.should include(:foo)
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

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