Skip to content

Commit 199ef08

Browse files
committed
Test new edge methods textarea and checkbox
1 parent 2487bea commit 199ef08

File tree

4 files changed

+150
-0
lines changed

4 files changed

+150
-0
lines changed

test/action_view/cases/test_form_for_helpers.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,21 @@ def test_text_area
7070
assert_dom_equal expected, output_buffer
7171
end
7272

73+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:textarea)
74+
def test_textarea
75+
form_for(@post, validate: true) do |f|
76+
concat f.textarea(:cost)
77+
end
78+
79+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
80+
expected = whole_form_for('/posts', 'new_post', 'new_post', validators: validators) do
81+
form_field('textarea', id: 'post_cost', name: 'post[cost]', tag_content: "\n")
82+
end
83+
84+
assert_dom_equal expected, output_buffer
85+
end
86+
end
87+
7388
def test_file_field
7489
form_for(@post, validate: true) do |f|
7590
concat f.file_field(:cost)
@@ -97,6 +112,22 @@ def test_check_box
97112
assert_dom_equal expected, output_buffer
98113
end
99114

115+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:checkbox)
116+
def test_checkbox
117+
form_for(@post, validate: true) do |f|
118+
concat f.checkbox(:cost)
119+
end
120+
121+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
122+
expected = whole_form_for('/posts', 'new_post', 'new_post', validators: validators) do
123+
form_field('input', name: 'post[cost]', type: 'hidden', value: '0') +
124+
form_field('input', id: 'post_cost', name: 'post[cost]', type: 'checkbox', value: '1')
125+
end
126+
127+
assert_dom_equal expected, output_buffer
128+
end
129+
end
130+
100131
def test_check_box_ensure_no_validate_attribute
101132
form_for(@post, validate: true) do |f|
102133
concat f.check_box(:cost, validate: true)
@@ -425,6 +456,21 @@ def test_collection_check_boxes
425456
assert_dom_equal expected, output_buffer
426457
end
427458

459+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:collection_checkboxes)
460+
def test_collection_checkboxes
461+
form_for(@post, validate: true) do |f|
462+
concat f.collection_checkboxes(:cost, [], :id, :name)
463+
end
464+
465+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
466+
expected = whole_form_for('/posts', 'new_post', 'new_post', validators: validators) do
467+
form_field('input', name: 'post[cost][]', type: 'hidden', value: '')
468+
end
469+
470+
assert_dom_equal expected, output_buffer
471+
end
472+
end
473+
428474
def test_collection_check_boxes_with_validate_options
429475
form_for(@post, validate: true) do |f|
430476
concat f.collection_check_boxes(:cost, [], :id, :name, {}, validate: false)

test/action_view/cases/test_form_with_helpers.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,21 @@ def test_form_with_text_area
9595
assert_dom_equal expected, output_buffer
9696
end
9797

98+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:textarea)
99+
def test_form_with_textarea
100+
form_with(model: @post, validate: true) do |f|
101+
concat f.textarea(:cost)
102+
end
103+
104+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
105+
expected = whole_form_with('/posts', validators: validators) do
106+
form_field('textarea', id: 'post_cost', name: 'post[cost]', tag_content: "\n")
107+
end
108+
109+
assert_dom_equal expected, output_buffer
110+
end
111+
end
112+
98113
def test_form_with_file_field
99114
form_with(model: @post, validate: true) do |f|
100115
concat f.file_field(:cost)
@@ -122,6 +137,22 @@ def test_form_with_check_box
122137
assert_dom_equal expected, output_buffer
123138
end
124139

140+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:checkbox)
141+
def test_form_with_checkbox
142+
form_with(model: @post, validate: true) do |f|
143+
concat f.checkbox(:cost)
144+
end
145+
146+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
147+
expected = whole_form_with('/posts', validators: validators) do
148+
form_field('input', name: 'post[cost]', type: 'hidden', value: '0') +
149+
form_field('input', id: 'post_cost', name: 'post[cost]', type: 'checkbox', value: '1')
150+
end
151+
152+
assert_dom_equal expected, output_buffer
153+
end
154+
end
155+
125156
def test_form_with_check_box_ensure_no_validate_attribute
126157
form_with(model: @post, validate: true) do |f|
127158
concat f.check_box(:cost, validate: true)
@@ -440,6 +471,21 @@ def test_form_with_collection_check_boxes
440471
assert_dom_equal expected, output_buffer
441472
end
442473

474+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:collection_checkboxes)
475+
def test_form_with_collection_checkboxes
476+
form_with(model: @post, validate: true) do |f|
477+
concat f.collection_checkboxes(:cost, [], :id, :name)
478+
end
479+
480+
validators = { 'post[cost]' => { presence: [{ message: I18n.t('errors.messages.blank') }] } }
481+
expected = whole_form_with('/posts', validators: validators) do
482+
form_field('input', name: 'post[cost][]', type: 'hidden', value: '')
483+
end
484+
485+
assert_dom_equal expected, output_buffer
486+
end
487+
end
488+
443489
def test_form_with_collection_check_boxes_with_validate_options
444490
form_with(model: @post, validate: true) do |f|
445491
concat f.collection_check_boxes(:cost, [], :id, :name, {}, validate: false)

test/action_view/cases/test_legacy_form_for_helpers.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ def test_text_area
3232
assert_dom_equal expected, output_buffer
3333
end
3434

35+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:textarea)
36+
def test_textarea
37+
form_for(@post) do |f|
38+
concat f.textarea(:cost)
39+
end
40+
41+
expected = whole_form_for('/posts', 'new_post', 'new_post') do
42+
form_field('textarea', id: 'post_cost', name: 'post[cost]', tag_content: "\n")
43+
end
44+
45+
assert_dom_equal expected, output_buffer
46+
end
47+
end
48+
3549
def test_file_field
3650
form_for(@post) do |f|
3751
concat f.file_field(:cost)
@@ -57,6 +71,21 @@ def test_check_box
5771
assert_dom_equal expected, output_buffer
5872
end
5973

74+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:checkbox)
75+
def test_checkbox
76+
form_for(@post) do |f|
77+
concat f.checkbox(:cost)
78+
end
79+
80+
expected = whole_form_for('/posts', 'new_post', 'new_post') do
81+
hidden_input_for_checkbox('post[cost]') +
82+
form_field('input', id: 'post_cost', name: 'post[cost]', type: 'checkbox', value: '1')
83+
end
84+
85+
assert_dom_equal expected, output_buffer
86+
end
87+
end
88+
6089
def test_radio_button
6190
form_for(@post) do |f|
6291
concat f.radio_button(:cost, '10')

test/action_view/cases/test_legacy_form_with_helpers.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,20 @@ def test_form_with_text_area
3333
assert_dom_equal expected, output_buffer
3434
end
3535

36+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:textarea)
37+
def test_form_with_textarea
38+
form_with(model: @post) do |f|
39+
concat f.textarea(:cost)
40+
end
41+
42+
expected = whole_form_with('/posts') do
43+
form_field('textarea', name: 'post[cost]', id: 'post_cost', tag_content: "\n")
44+
end
45+
46+
assert_dom_equal expected, output_buffer
47+
end
48+
end
49+
3650
def test_form_with_file_field
3751
form_with(model: @post) do |f|
3852
concat f.file_field(:cost)
@@ -58,6 +72,21 @@ def test_form_with_check_box
5872
assert_dom_equal expected, output_buffer
5973
end
6074

75+
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:checkbox)
76+
def test_form_with_checkbox
77+
form_with(model: @post) do |f|
78+
concat f.checkbox(:cost)
79+
end
80+
81+
expected = whole_form_with('/posts') do
82+
hidden_input_for_checkbox('post[cost]') +
83+
form_field('input', name: 'post[cost]', id: 'post_cost', type: 'checkbox', value: '1')
84+
end
85+
86+
assert_dom_equal expected, output_buffer
87+
end
88+
end
89+
6190
def test_form_with_radio_button
6291
form_with(model: @post) do |f|
6392
concat f.radio_button(:cost, '10')

0 commit comments

Comments
 (0)