require 'spec_helper'
describe ActiveAdmin::ViewHelpers::FormHelper do
describe '.active_admin_form_for' do
let(:view) { action_view }
let(:resource) { double 'resource' }
let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
it 'calls semantic_form_for with the ActiveAdmin form builder' do
expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
view.active_admin_form_for(resource)
end
it 'allows the form builder to be customized' do
# We can't use a stub here because options gets marshalled, and a new
# instance built. Any constant will work.
custom_builder = Object
expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
view.active_admin_form_for(resource, builder: custom_builder)
end
end
describe ".hidden_field_tags_for" do
let(:view) { action_view }
it "should render hidden field tags for params" do
expect(view.hidden_field_tags_for(scope: "All", filter: "None")).to eq \
%{\n}
end
it "should generate not default id for hidden input" do
expect(view.hidden_field_tags_for(scope: "All")[/id="([^"]+)"/, 1]).to_not eq "scope"
end
it "should filter out the field passed via the option :except" do
expect(view.hidden_field_tags_for({scope: "All", filter: "None"}, except: :filter)).to eq \
%{}
end
end
end