Sha256: 18580a8daf419519b8fdf47efe30a44fa1188aef4f142002c500355784a5a609

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

require "spec_helper"

describe NestedForm::Builder do
  describe "with no options" do
    before(:each) do
      @project = Project.new
      @template = ActionView::Base.new
      @template.output_buffer = ""
      @builder = NestedForm::Builder.new(:item, @project, @template, {}, proc {})
    end

    it "should have an add link" do
      @builder.link_to_add("Add", :tasks).should == '<a href="javascript:void(0)" class="add_nested_fields" data-association="tasks">Add</a>'
    end

    it "should have a remove link" do
      @builder.link_to_remove("Remove").should == '<input id="item__destroy" name="item[_destroy]" type="hidden" value="false" /><a href="javascript:void(0)" class="remove_nested_fields">Remove</a>'
    end

    it "should wrap nested fields each in a div with class" do
      2.times { @project.tasks.build }
      @builder.fields_for(:tasks) do
        "Task"
      end.should == '<div class="fields">Task</div><div class="fields">Task</div>'
    end

    it "should add task fields to hidden div after form" do
      pending
      output = ""
      mock(@template).after_nested_form(:tasks) { |arg, block| output << block.call }
      @builder.fields_for(:tasks) { "Task" }
      @builder.link_to_add("Add", :tasks)
      output.should == '<div id="tasks_fields_blueprint" style="display: none"><div class="fields">Task</div></div>'
    end 
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nested_form-0.1.0 spec/nested_form/builder_spec.rb
nested_form-0.0.0 spec/nested_form/builder_spec.rb