heartcombo--simple_form/test/form_builder/button_test.rb

48 lines
1.5 KiB
Ruby
Raw Normal View History

# encoding: UTF-8
require 'test_helper'
class ButtonTest < ActionView::TestCase
def with_button_for(object, *args)
with_concat_form_for(object) do |f|
f.button(*args)
end
end
test 'builder should create buttons' do
with_button_for :post, :submit
assert_select 'form input.button[type=submit][value=Save Post]'
end
test 'builder should create buttons with options' do
with_button_for :post, :submit, :class => 'my_button'
assert_select 'form input.button.my_button[type=submit][value=Save Post]'
end
test 'builder should not modify the options hash' do
options = { :class => 'my_button' }
with_button_for :post, :submit, options
assert_select 'form input.button.my_button[type=submit][value=Save Post]'
assert_equal({ :class => 'my_button' }, options)
end
test 'builder should create buttons for records' do
@user.new_record!
with_button_for @user, :submit
assert_select 'form input.button[type=submit][value=Create User]'
end
test "builder should use the default class from the configuration" do
swap SimpleForm, :button_class => 'btn' do
with_button_for :post, :submit
assert_select 'form input.btn[type=submit][value=Save Post]'
end
end
if ActionView::Helpers::FormBuilder.method_defined?(:button)
test "allows to use Rails button helper when available" do
with_button_for :post, :button, 'Save!'
assert_select 'form button.button[type=submit]', 'Save!'
end
end
end