formtastic 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +13 -13
- data/CHANGELOG.md +10 -1
- data/Gemfile.lock +99 -64
- data/README.md +7 -2
- data/formtastic.gemspec +5 -3
- data/gemfiles/{rails_5.2 → rails_7.0}/Gemfile +1 -1
- data/gemfiles/rails_7.1/Gemfile +5 -0
- data/gemfiles/rails_edge/Gemfile +1 -1
- data/lib/formtastic/action_class_finder.rb +1 -0
- data/lib/formtastic/actions/base.rb +1 -0
- data/lib/formtastic/actions/button_action.rb +1 -0
- data/lib/formtastic/actions/buttonish.rb +1 -0
- data/lib/formtastic/actions/input_action.rb +1 -0
- data/lib/formtastic/actions/link_action.rb +1 -0
- data/lib/formtastic/actions.rb +1 -0
- data/lib/formtastic/deprecation.rb +2 -1
- data/lib/formtastic/engine.rb +1 -0
- data/lib/formtastic/form_builder.rb +1 -0
- data/lib/formtastic/helpers/action_helper.rb +1 -0
- data/lib/formtastic/helpers/actions_helper.rb +1 -0
- data/lib/formtastic/helpers/enum.rb +1 -0
- data/lib/formtastic/helpers/errors_helper.rb +1 -0
- data/lib/formtastic/helpers/fieldset_wrapper.rb +1 -0
- data/lib/formtastic/helpers/file_column_detection.rb +1 -0
- data/lib/formtastic/helpers/form_helper.rb +1 -0
- data/lib/formtastic/helpers/input_helper.rb +2 -4
- data/lib/formtastic/helpers/inputs_helper.rb +2 -1
- data/lib/formtastic/helpers/reflection.rb +1 -0
- data/lib/formtastic/helpers.rb +1 -1
- data/lib/formtastic/html_attributes.rb +1 -0
- data/lib/formtastic/i18n.rb +1 -0
- data/lib/formtastic/input_class_finder.rb +1 -0
- data/lib/formtastic/inputs/base/associations.rb +1 -0
- data/lib/formtastic/inputs/base/choices.rb +2 -1
- data/lib/formtastic/inputs/base/collections.rb +4 -1
- data/lib/formtastic/inputs/base/database.rb +5 -7
- data/lib/formtastic/inputs/base/datetime_pickerish.rb +1 -0
- data/lib/formtastic/inputs/base/errors.rb +3 -2
- data/lib/formtastic/inputs/base/fileish.rb +1 -0
- data/lib/formtastic/inputs/base/hints.rb +1 -0
- data/lib/formtastic/inputs/base/html.rb +2 -1
- data/lib/formtastic/inputs/base/labelling.rb +3 -2
- data/lib/formtastic/inputs/base/naming.rb +1 -0
- data/lib/formtastic/inputs/base/numeric.rb +1 -0
- data/lib/formtastic/inputs/base/options.rb +1 -0
- data/lib/formtastic/inputs/base/placeholder.rb +1 -0
- data/lib/formtastic/inputs/base/stringish.rb +1 -0
- data/lib/formtastic/inputs/base/timeish.rb +4 -3
- data/lib/formtastic/inputs/base/validations.rb +2 -1
- data/lib/formtastic/inputs/base/wrapping.rb +1 -0
- data/lib/formtastic/inputs/base.rb +3 -2
- data/lib/formtastic/inputs/boolean_input.rb +2 -1
- data/lib/formtastic/inputs/check_boxes_input.rb +2 -1
- data/lib/formtastic/inputs/color_input.rb +1 -0
- data/lib/formtastic/inputs/country_input.rb +1 -0
- data/lib/formtastic/inputs/datalist_input.rb +1 -0
- data/lib/formtastic/inputs/date_picker_input.rb +1 -0
- data/lib/formtastic/inputs/date_select_input.rb +1 -0
- data/lib/formtastic/inputs/datetime_picker_input.rb +1 -0
- data/lib/formtastic/inputs/datetime_select_input.rb +1 -0
- data/lib/formtastic/inputs/email_input.rb +1 -0
- data/lib/formtastic/inputs/file_input.rb +1 -0
- data/lib/formtastic/inputs/hidden_input.rb +3 -2
- data/lib/formtastic/inputs/number_input.rb +1 -0
- data/lib/formtastic/inputs/password_input.rb +1 -0
- data/lib/formtastic/inputs/phone_input.rb +1 -0
- data/lib/formtastic/inputs/radio_input.rb +1 -0
- data/lib/formtastic/inputs/range_input.rb +1 -0
- data/lib/formtastic/inputs/search_input.rb +1 -0
- data/lib/formtastic/inputs/select_input.rb +1 -0
- data/lib/formtastic/inputs/string_input.rb +1 -0
- data/lib/formtastic/inputs/text_input.rb +1 -0
- data/lib/formtastic/inputs/time_picker_input.rb +1 -0
- data/lib/formtastic/inputs/time_select_input.rb +1 -0
- data/lib/formtastic/inputs/time_zone_input.rb +1 -0
- data/lib/formtastic/inputs/url_input.rb +1 -0
- data/lib/formtastic/inputs.rb +1 -0
- data/lib/formtastic/localized_string.rb +1 -0
- data/lib/formtastic/localizer.rb +1 -0
- data/lib/formtastic/namespaced_class_finder.rb +7 -8
- data/lib/formtastic/version.rb +2 -1
- data/lib/formtastic.rb +1 -0
- data/lib/generators/formtastic/form/form_generator.rb +1 -0
- data/lib/generators/formtastic/input/input_generator.rb +1 -0
- data/lib/generators/formtastic/install/install_generator.rb +1 -0
- data/lib/generators/templates/formtastic.rb +1 -0
- data/script/integration-template.rb +2 -3
- data/spec/action_class_finder_spec.rb +1 -0
- data/spec/actions/button_action_spec.rb +17 -16
- data/spec/actions/generic_action_spec.rb +130 -129
- data/spec/actions/input_action_spec.rb +16 -15
- data/spec/actions/link_action_spec.rb +25 -24
- data/spec/builder/custom_builder_spec.rb +5 -4
- data/spec/builder/error_proc_spec.rb +2 -1
- data/spec/builder/semantic_fields_for_spec.rb +26 -25
- data/spec/fast_spec_helper.rb +1 -0
- data/spec/generators/formtastic/form/form_generator_spec.rb +8 -7
- data/spec/generators/formtastic/input/input_generator_spec.rb +1 -0
- data/spec/generators/formtastic/install/install_generator_spec.rb +1 -0
- data/spec/helpers/action_helper_spec.rb +15 -14
- data/spec/helpers/actions_helper_spec.rb +42 -41
- data/spec/helpers/form_helper_spec.rb +26 -19
- data/spec/helpers/input_helper_spec.rb +70 -69
- data/spec/helpers/inputs_helper_spec.rb +179 -179
- data/spec/helpers/reflection_helper_spec.rb +4 -3
- data/spec/helpers/semantic_errors_helper_spec.rb +4 -3
- data/spec/i18n_spec.rb +13 -12
- data/spec/input_class_finder_spec.rb +1 -0
- data/spec/inputs/base/collections_spec.rb +2 -0
- data/spec/inputs/base/validations_spec.rb +1 -0
- data/spec/inputs/boolean_input_spec.rb +66 -65
- data/spec/inputs/check_boxes_input_spec.rb +89 -88
- data/spec/inputs/color_input_spec.rb +7 -6
- data/spec/inputs/country_input_spec.rb +10 -9
- data/spec/inputs/custom_input_spec.rb +1 -0
- data/spec/inputs/datalist_input_spec.rb +2 -1
- data/spec/inputs/date_picker_input_spec.rb +109 -108
- data/spec/inputs/date_select_input_spec.rb +63 -62
- data/spec/inputs/datetime_picker_input_spec.rb +118 -117
- data/spec/inputs/datetime_select_input_spec.rb +72 -71
- data/spec/inputs/email_input_spec.rb +16 -15
- data/spec/inputs/file_input_spec.rb +17 -16
- data/spec/inputs/hidden_input_spec.rb +29 -28
- data/spec/inputs/include_blank_spec.rb +7 -6
- data/spec/inputs/label_spec.rb +25 -24
- data/spec/inputs/number_input_spec.rb +159 -158
- data/spec/inputs/password_input_spec.rb +16 -15
- data/spec/inputs/phone_input_spec.rb +16 -15
- data/spec/inputs/placeholder_spec.rb +17 -16
- data/spec/inputs/radio_input_spec.rb +58 -57
- data/spec/inputs/range_input_spec.rb +108 -107
- data/spec/inputs/readonly_spec.rb +5 -4
- data/spec/inputs/search_input_spec.rb +15 -14
- data/spec/inputs/select_input_spec.rb +144 -93
- data/spec/inputs/string_input_spec.rb +36 -35
- data/spec/inputs/text_input_spec.rb +32 -31
- data/spec/inputs/time_picker_input_spec.rb +110 -109
- data/spec/inputs/time_select_input_spec.rb +71 -70
- data/spec/inputs/time_zone_input_spec.rb +21 -20
- data/spec/inputs/url_input_spec.rb +16 -15
- data/spec/inputs/with_options_spec.rb +8 -7
- data/spec/localizer_spec.rb +1 -0
- data/spec/namespaced_class_finder_spec.rb +17 -5
- data/spec/schema.rb +1 -0
- data/spec/spec_helper.rb +8 -8
- data/spec/support/custom_macros.rb +64 -63
- data/spec/support/deprecation.rb +2 -1
- data/spec/support/shared_examples.rb +2 -1
- data/spec/support/specialized_class_finder_shared_example.rb +1 -0
- data/spec/support/test_environment.rb +1 -0
- metadata +29 -14
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'spec_helper'
|
|
3
4
|
|
|
4
5
|
RSpec.describe 'check_boxes input' do
|
|
@@ -6,13 +7,13 @@ RSpec.describe 'check_boxes input' do
|
|
|
6
7
|
include FormtasticSpecHelper
|
|
7
8
|
|
|
8
9
|
before do
|
|
9
|
-
@output_buffer = ''
|
|
10
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
10
11
|
mock_everything
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
describe 'for a has_many association' do
|
|
14
15
|
before do
|
|
15
|
-
@output_buffer = ''
|
|
16
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
16
17
|
mock_everything
|
|
17
18
|
|
|
18
19
|
concat(semantic_form_for(@fred) do |builder|
|
|
@@ -31,127 +32,127 @@ RSpec.describe 'check_boxes input' do
|
|
|
31
32
|
it_should_use_the_collection_when_provided(:check_boxes, 'input[@type="checkbox"]')
|
|
32
33
|
|
|
33
34
|
it 'should generate a legend containing a label with text for the input' do
|
|
34
|
-
expect(output_buffer).to have_tag('form li fieldset legend.label label')
|
|
35
|
-
expect(output_buffer).to have_tag('form li fieldset legend.label label', :text => /Posts/)
|
|
35
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset legend.label label')
|
|
36
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset legend.label label', :text => /Posts/)
|
|
36
37
|
end
|
|
37
38
|
|
|
38
39
|
it 'should not link the label within the legend to any input' do
|
|
39
|
-
expect(output_buffer).not_to have_tag('form li fieldset legend label[@for^="author_post_ids_"]')
|
|
40
|
+
expect(output_buffer.to_str).not_to have_tag('form li fieldset legend label[@for^="author_post_ids_"]')
|
|
40
41
|
end
|
|
41
42
|
|
|
42
43
|
it 'should generate an ordered list with an li.choice for each choice' do
|
|
43
|
-
expect(output_buffer).to have_tag('form li fieldset ol')
|
|
44
|
-
expect(output_buffer).to have_tag('form li fieldset ol li.choice input[@type=checkbox]', :count => ::Post.all.size)
|
|
44
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol')
|
|
45
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li.choice input[@type=checkbox]', :count => ::Post.all.size)
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
it 'should have one option with a "checked" attribute' do
|
|
48
|
-
expect(output_buffer).to have_tag('form li input[@checked]', :count => 1)
|
|
49
|
+
expect(output_buffer.to_str).to have_tag('form li input[@checked]', :count => 1)
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
it 'should not generate hidden inputs with default value blank' do
|
|
52
|
-
expect(output_buffer).not_to have_tag("form li fieldset ol li label input[@type='hidden'][@value='']")
|
|
53
|
+
expect(output_buffer.to_str).not_to have_tag("form li fieldset ol li label input[@type='hidden'][@value='']")
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
it 'should not render hidden inputs inside the ol' do
|
|
56
|
-
expect(output_buffer).not_to have_tag("form li fieldset ol li input[@type='hidden']")
|
|
57
|
+
expect(output_buffer.to_str).not_to have_tag("form li fieldset ol li input[@type='hidden']")
|
|
57
58
|
end
|
|
58
59
|
|
|
59
60
|
it 'should render one hidden input for each choice outside the ol' do
|
|
60
|
-
expect(output_buffer).to have_tag("form li fieldset > input[@type='hidden']", :count => 1)
|
|
61
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset > input[@type='hidden']", :count => 1)
|
|
61
62
|
end
|
|
62
63
|
|
|
63
64
|
describe "each choice" do
|
|
64
65
|
|
|
65
66
|
it 'should not give the choice label the .label class' do
|
|
66
|
-
expect(output_buffer).not_to have_tag('li.choice label.label')
|
|
67
|
+
expect(output_buffer.to_str).not_to have_tag('li.choice label.label')
|
|
67
68
|
end
|
|
68
69
|
|
|
69
70
|
it 'should not be marked as required' do
|
|
70
|
-
expect(output_buffer).not_to have_tag('li.choice input[@required]')
|
|
71
|
+
expect(output_buffer.to_str).not_to have_tag('li.choice input[@required]')
|
|
71
72
|
end
|
|
72
73
|
|
|
73
74
|
it 'should contain a label for the radio input with a nested input and label text' do
|
|
74
75
|
::Post.all.each do |post|
|
|
75
|
-
expect(output_buffer).to have_tag('form li fieldset ol li label', :text => /#{post.to_label}/)
|
|
76
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='author_post_ids_#{post.id}']")
|
|
76
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li label', :text => /#{post.to_label}/)
|
|
77
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='author_post_ids_#{post.id}']")
|
|
77
78
|
end
|
|
78
79
|
end
|
|
79
80
|
|
|
80
81
|
it 'should use values as li.class when value_as_class is true' do
|
|
81
82
|
::Post.all.each do |post|
|
|
82
|
-
expect(output_buffer).to have_tag("form li fieldset ol li.post_#{post.id} label")
|
|
83
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li.post_#{post.id} label")
|
|
83
84
|
end
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
it 'should have a checkbox input but no hidden field for each post' do
|
|
87
88
|
::Post.all.each do |post|
|
|
88
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
89
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => 1)
|
|
89
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
90
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => 1)
|
|
90
91
|
end
|
|
91
92
|
end
|
|
92
93
|
|
|
93
94
|
it 'should have a hidden field with an empty array value for the collection to allow clearing of all checkboxes' do
|
|
94
|
-
expect(output_buffer).to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids][]'][@value='']", :count => 1)
|
|
95
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids][]'][@value='']", :count => 1)
|
|
95
96
|
end
|
|
96
97
|
|
|
97
98
|
it 'the hidden field with an empty array value should be followed by the ol' do
|
|
98
|
-
expect(output_buffer).to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids][]'][@value=''] + ol", :count => 1)
|
|
99
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids][]'][@value=''] + ol", :count => 1)
|
|
99
100
|
end
|
|
100
101
|
|
|
101
102
|
it 'should not have a hidden field with an empty string value for the collection' do
|
|
102
|
-
expect(output_buffer).not_to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids]'][@value='']", :count => 1)
|
|
103
|
+
expect(output_buffer.to_str).not_to have_tag("form li fieldset > input[@type=hidden][@name='author[post_ids]'][@value='']", :count => 1)
|
|
103
104
|
end
|
|
104
105
|
|
|
105
106
|
it 'should have a checkbox and a hidden field for each post with :hidden_field => true' do
|
|
106
|
-
output_buffer.
|
|
107
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
107
108
|
|
|
108
109
|
concat(semantic_form_for(@fred) do |builder|
|
|
109
110
|
concat(builder.input(:posts, :as => :check_boxes, :hidden_fields => true, :value_as_class => true))
|
|
110
111
|
end)
|
|
111
112
|
|
|
112
113
|
::Post.all.each do |post|
|
|
113
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
114
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => 2)
|
|
115
|
-
expect(output_buffer).to have_tag('form li fieldset ol li label', :text => /#{post.to_label}/)
|
|
114
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
115
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => 2)
|
|
116
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li label', :text => /#{post.to_label}/)
|
|
116
117
|
end
|
|
117
118
|
|
|
118
119
|
end
|
|
119
120
|
|
|
120
121
|
it "should mark input as checked if it's the the existing choice" do
|
|
121
122
|
expect(::Post.all.include?(@fred.posts.first)).to be_truthy
|
|
122
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@checked='checked']")
|
|
123
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@checked='checked']")
|
|
123
124
|
end
|
|
124
125
|
end
|
|
125
126
|
|
|
126
127
|
describe 'and no object is given' do
|
|
127
128
|
before(:example) do
|
|
128
|
-
output_buffer.
|
|
129
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
129
130
|
concat(semantic_form_for(:project, :url => 'http://test.host') do |builder|
|
|
130
131
|
concat(builder.input(:author_id, :as => :check_boxes, :collection => ::Author.all))
|
|
131
132
|
end)
|
|
132
133
|
end
|
|
133
134
|
|
|
134
135
|
it 'should generate a fieldset with legend' do
|
|
135
|
-
expect(output_buffer).to have_tag('form li fieldset legend', :text => /Author/)
|
|
136
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset legend', :text => /Author/)
|
|
136
137
|
end
|
|
137
138
|
|
|
138
139
|
it 'shold generate an li tag for each item in the collection' do
|
|
139
|
-
expect(output_buffer).to have_tag('form li fieldset ol li input[@type=checkbox]', :count => ::Author.all.size)
|
|
140
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li input[@type=checkbox]', :count => ::Author.all.size)
|
|
140
141
|
end
|
|
141
142
|
|
|
142
143
|
it 'should generate labels for each item' do
|
|
143
144
|
::Author.all.each do |author|
|
|
144
|
-
expect(output_buffer).to have_tag('form li fieldset ol li label', :text => /#{author.to_label}/)
|
|
145
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='project_author_id_#{author.id}']")
|
|
145
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li label', :text => /#{author.to_label}/)
|
|
146
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='project_author_id_#{author.id}']")
|
|
146
147
|
end
|
|
147
148
|
end
|
|
148
149
|
|
|
149
150
|
it 'should generate inputs for each item' do
|
|
150
151
|
::Author.all.each do |author|
|
|
151
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input#project_author_id_#{author.id}")
|
|
152
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@type='checkbox']")
|
|
153
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='#{author.id}']")
|
|
154
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@name='project[author_id][]']")
|
|
152
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input#project_author_id_#{author.id}")
|
|
153
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@type='checkbox']")
|
|
154
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='#{author.id}']")
|
|
155
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@name='project[author_id][]']")
|
|
155
156
|
end
|
|
156
157
|
end
|
|
157
158
|
|
|
@@ -160,7 +161,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
160
161
|
concat(builder.input(:author_id, :as => :check_boxes, :collection => [["<b>Item 1</b>", 1], ["<b>Item 2</b>", 2]]))
|
|
161
162
|
end)
|
|
162
163
|
|
|
163
|
-
expect(output_buffer).to have_tag('form li fieldset ol li label', text: %r{<b>Item [12]</b>}, count: 2) do |label|
|
|
164
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li label', text: %r{<b>Item [12]</b>}, count: 2) do |label|
|
|
164
165
|
expect(label).to have_text('<b>Item 1</b>', count: 1)
|
|
165
166
|
expect(label).to have_text('<b>Item 2</b>', count: 1)
|
|
166
167
|
end
|
|
@@ -169,7 +170,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
169
170
|
|
|
170
171
|
describe 'when :hidden_fields is set to false' do
|
|
171
172
|
before do
|
|
172
|
-
@output_buffer = ''
|
|
173
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
173
174
|
mock_everything
|
|
174
175
|
|
|
175
176
|
concat(semantic_form_for(@fred) do |builder|
|
|
@@ -179,24 +180,24 @@ RSpec.describe 'check_boxes input' do
|
|
|
179
180
|
|
|
180
181
|
it 'should have a checkbox input for each post' do
|
|
181
182
|
::Post.all.each do |post|
|
|
182
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
183
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => ::Post.all.length)
|
|
183
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
184
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => ::Post.all.length)
|
|
184
185
|
end
|
|
185
186
|
end
|
|
186
187
|
|
|
187
188
|
it "should mark input as checked if it's the the existing choice" do
|
|
188
189
|
expect(::Post.all.include?(@fred.posts.first)).to be_truthy
|
|
189
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@checked='checked']")
|
|
190
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@checked='checked']")
|
|
190
191
|
end
|
|
191
192
|
|
|
192
193
|
it 'should not generate empty hidden inputs' do
|
|
193
|
-
expect(output_buffer).not_to have_tag("form li fieldset ol li label input[@type='hidden'][@value='']", :count => ::Post.all.length)
|
|
194
|
+
expect(output_buffer.to_str).not_to have_tag("form li fieldset ol li label input[@type='hidden'][@value='']", :count => ::Post.all.length)
|
|
194
195
|
end
|
|
195
196
|
end
|
|
196
197
|
|
|
197
198
|
describe 'when :disabled is set' do
|
|
198
199
|
before do
|
|
199
|
-
@output_buffer = ''
|
|
200
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
200
201
|
end
|
|
201
202
|
|
|
202
203
|
describe "no disabled items" do
|
|
@@ -209,7 +210,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
209
210
|
end
|
|
210
211
|
|
|
211
212
|
it 'should not have any disabled item(s)' do
|
|
212
|
-
expect(output_buffer).not_to have_tag("form li fieldset ol li label input[@disabled='disabled']")
|
|
213
|
+
expect(output_buffer.to_str).not_to have_tag("form li fieldset ol li label input[@disabled='disabled']")
|
|
213
214
|
end
|
|
214
215
|
end
|
|
215
216
|
|
|
@@ -223,9 +224,9 @@ RSpec.describe 'check_boxes input' do
|
|
|
223
224
|
end
|
|
224
225
|
|
|
225
226
|
it "should have one item disabled; the specified one" do
|
|
226
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@disabled='disabled']", :count => 1)
|
|
227
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@fred.id}']", :text => /fred/i)
|
|
228
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@fred.id}']")
|
|
227
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@disabled='disabled']", :count => 1)
|
|
228
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@fred.id}']", :text => /fred/i)
|
|
229
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@fred.id}']")
|
|
229
230
|
end
|
|
230
231
|
end
|
|
231
232
|
|
|
@@ -239,11 +240,11 @@ RSpec.describe 'check_boxes input' do
|
|
|
239
240
|
end
|
|
240
241
|
|
|
241
242
|
it "should have multiple items disabled; the specified ones" do
|
|
242
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@disabled='disabled']", :count => 2)
|
|
243
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@bob.id}']", :text => /bob/i)
|
|
244
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@bob.id}']")
|
|
245
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@fred.id}']", :text => /fred/i)
|
|
246
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@fred.id}']")
|
|
243
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@disabled='disabled']", :count => 2)
|
|
244
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@bob.id}']", :text => /bob/i)
|
|
245
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@bob.id}']")
|
|
246
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='post_author_ids_#{@fred.id}']", :text => /fred/i)
|
|
247
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@disabled='disabled'][@value='#{@fred.id}']")
|
|
247
248
|
end
|
|
248
249
|
end
|
|
249
250
|
|
|
@@ -266,7 +267,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
266
267
|
end
|
|
267
268
|
|
|
268
269
|
it "should do foo" do
|
|
269
|
-
expect(output_buffer).to have_tag("legend.label label", :text => /Translated/)
|
|
270
|
+
expect(output_buffer.to_str).to have_tag("legend.label label", :text => /Translated/)
|
|
270
271
|
end
|
|
271
272
|
|
|
272
273
|
end
|
|
@@ -280,13 +281,13 @@ RSpec.describe 'check_boxes input' do
|
|
|
280
281
|
end
|
|
281
282
|
|
|
282
283
|
it "should output the correct label title" do
|
|
283
|
-
expect(output_buffer).to have_tag("legend.label label", :text => /The authors/)
|
|
284
|
+
expect(output_buffer.to_str).to have_tag("legend.label label", :text => /The authors/)
|
|
284
285
|
end
|
|
285
286
|
end
|
|
286
287
|
|
|
287
288
|
describe "when :label option is false" do
|
|
288
289
|
before do
|
|
289
|
-
@output_buffer = ''
|
|
290
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
290
291
|
allow(@new_post).to receive(:author_ids).and_return(nil)
|
|
291
292
|
concat(semantic_form_for(@new_post) do |builder|
|
|
292
293
|
concat(builder.input(:authors, :as => :check_boxes, :label => false))
|
|
@@ -294,11 +295,11 @@ RSpec.describe 'check_boxes input' do
|
|
|
294
295
|
end
|
|
295
296
|
|
|
296
297
|
it "should not output the legend" do
|
|
297
|
-
expect(output_buffer).not_to have_tag("legend.label")
|
|
298
|
+
expect(output_buffer.to_str).not_to have_tag("legend.label")
|
|
298
299
|
end
|
|
299
300
|
|
|
300
301
|
it "should not cause escaped HTML" do
|
|
301
|
-
expect(output_buffer).not_to include(">")
|
|
302
|
+
expect(output_buffer.to_str).not_to include(">")
|
|
302
303
|
end
|
|
303
304
|
|
|
304
305
|
end
|
|
@@ -312,7 +313,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
312
313
|
end
|
|
313
314
|
|
|
314
315
|
it "should output the correct label title" do
|
|
315
|
-
expect(output_buffer).to have_tag("legend.label label abbr")
|
|
316
|
+
expect(output_buffer.to_str).to have_tag("legend.label label abbr")
|
|
316
317
|
end
|
|
317
318
|
end
|
|
318
319
|
end
|
|
@@ -337,7 +338,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
337
338
|
describe 'for a has_and_belongs_to_many association' do
|
|
338
339
|
|
|
339
340
|
before do
|
|
340
|
-
@output_buffer = ''
|
|
341
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
341
342
|
mock_everything
|
|
342
343
|
|
|
343
344
|
concat(semantic_form_for(@freds_post) do |builder|
|
|
@@ -347,14 +348,14 @@ RSpec.describe 'check_boxes input' do
|
|
|
347
348
|
|
|
348
349
|
it 'should render checkboxes' do
|
|
349
350
|
# I'm aware these two lines test the same thing
|
|
350
|
-
expect(output_buffer).to have_tag('input[type="checkbox"]', :count => 2)
|
|
351
|
-
expect(output_buffer).to have_tag('input[type="checkbox"]', :count => ::Author.all.size)
|
|
351
|
+
expect(output_buffer.to_str).to have_tag('input[type="checkbox"]', :count => 2)
|
|
352
|
+
expect(output_buffer.to_str).to have_tag('input[type="checkbox"]', :count => ::Author.all.size)
|
|
352
353
|
end
|
|
353
354
|
|
|
354
355
|
it 'should only select checkboxes that are present in the association' do
|
|
355
356
|
# I'm aware these two lines test the same thing
|
|
356
|
-
expect(output_buffer).to have_tag('input[checked="checked"]', :count => 1)
|
|
357
|
-
expect(output_buffer).to have_tag('input[checked="checked"]', :count => @freds_post.authors.size)
|
|
357
|
+
expect(output_buffer.to_str).to have_tag('input[checked="checked"]', :count => 1)
|
|
358
|
+
expect(output_buffer.to_str).to have_tag('input[checked="checked"]', :count => @freds_post.authors.size)
|
|
358
359
|
end
|
|
359
360
|
|
|
360
361
|
end
|
|
@@ -362,7 +363,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
362
363
|
describe ':collection for a has_and_belongs_to_many association' do
|
|
363
364
|
|
|
364
365
|
before do
|
|
365
|
-
@output_buffer = ''
|
|
366
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
366
367
|
mock_everything
|
|
367
368
|
|
|
368
369
|
concat(semantic_form_for(@freds_post) do |builder|
|
|
@@ -372,14 +373,14 @@ RSpec.describe 'check_boxes input' do
|
|
|
372
373
|
|
|
373
374
|
it 'should render checkboxes' do
|
|
374
375
|
# I'm aware these two lines test the same thing
|
|
375
|
-
expect(output_buffer).to have_tag('input[type="checkbox"]', :count => 2)
|
|
376
|
-
expect(output_buffer).to have_tag('input[type="checkbox"]', :count => ::Author.all.size)
|
|
376
|
+
expect(output_buffer.to_str).to have_tag('input[type="checkbox"]', :count => 2)
|
|
377
|
+
expect(output_buffer.to_str).to have_tag('input[type="checkbox"]', :count => ::Author.all.size)
|
|
377
378
|
end
|
|
378
379
|
|
|
379
380
|
it 'should only select checkboxes that are present in the association' do
|
|
380
381
|
# I'm aware these two lines test the same thing
|
|
381
|
-
expect(output_buffer).to have_tag('input[checked="checked"]', :count => 1)
|
|
382
|
-
expect(output_buffer).to have_tag('input[checked="checked"]', :count => @freds_post.authors.size)
|
|
382
|
+
expect(output_buffer.to_str).to have_tag('input[checked="checked"]', :count => 1)
|
|
383
|
+
expect(output_buffer.to_str).to have_tag('input[checked="checked"]', :count => @freds_post.authors.size)
|
|
383
384
|
end
|
|
384
385
|
|
|
385
386
|
end
|
|
@@ -387,7 +388,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
387
388
|
describe 'for an association when a :collection is provided' do
|
|
388
389
|
describe 'it should use the specified :member_value option' do
|
|
389
390
|
before do
|
|
390
|
-
@output_buffer = ''
|
|
391
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
391
392
|
mock_everything
|
|
392
393
|
end
|
|
393
394
|
|
|
@@ -403,14 +404,14 @@ RSpec.describe 'check_boxes input' do
|
|
|
403
404
|
concat(builder.input(:author, :as => :check_boxes, :member_value => :custom_value, :collection => [item, item, item]))
|
|
404
405
|
end)
|
|
405
406
|
end
|
|
406
|
-
expect(output_buffer).to have_tag('input[@type=checkbox][@value="custom_value"]', :count => 3)
|
|
407
|
+
expect(output_buffer.to_str).to have_tag('input[@type=checkbox][@value="custom_value"]', :count => 3)
|
|
407
408
|
end
|
|
408
409
|
end
|
|
409
410
|
end
|
|
410
411
|
|
|
411
412
|
describe 'when :collection is provided as an array of arrays' do
|
|
412
413
|
before do
|
|
413
|
-
@output_buffer = ''
|
|
414
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
414
415
|
mock_everything
|
|
415
416
|
allow(@fred).to receive(:genres) { ['fiction', 'biography'] }
|
|
416
417
|
|
|
@@ -420,14 +421,14 @@ RSpec.describe 'check_boxes input' do
|
|
|
420
421
|
end
|
|
421
422
|
|
|
422
423
|
it 'should check the correct checkboxes' do
|
|
423
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='fiction'][@checked='checked']")
|
|
424
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='biography'][@checked='checked']")
|
|
424
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='fiction'][@checked='checked']")
|
|
425
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='biography'][@checked='checked']")
|
|
425
426
|
end
|
|
426
427
|
end
|
|
427
428
|
|
|
428
429
|
describe 'when :collection is a set' do
|
|
429
430
|
before do
|
|
430
|
-
@output_buffer = ''
|
|
431
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
431
432
|
mock_everything
|
|
432
433
|
allow(@fred).to receive(:roles) { Set.new([:reviewer, :admin]) }
|
|
433
434
|
|
|
@@ -437,16 +438,16 @@ RSpec.describe 'check_boxes input' do
|
|
|
437
438
|
end
|
|
438
439
|
|
|
439
440
|
it 'should check the correct checkboxes' do
|
|
440
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='user']")
|
|
441
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='admin'][@checked='checked']")
|
|
442
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label input[@value='reviewer'][@checked='checked']")
|
|
441
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='user']")
|
|
442
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='admin'][@checked='checked']")
|
|
443
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label input[@value='reviewer'][@checked='checked']")
|
|
443
444
|
end
|
|
444
445
|
end
|
|
445
446
|
|
|
446
447
|
describe "when namespace is provided" do
|
|
447
448
|
|
|
448
449
|
before do
|
|
449
|
-
@output_buffer = ''
|
|
450
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
450
451
|
mock_everything
|
|
451
452
|
|
|
452
453
|
concat(semantic_form_for(@fred, :namespace => "context2") do |builder|
|
|
@@ -455,7 +456,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
455
456
|
end
|
|
456
457
|
|
|
457
458
|
it "should have a label for #context2_author_post_ids_19" do
|
|
458
|
-
expect(output_buffer).to have_tag("form li label[@for='context2_author_post_ids_19']")
|
|
459
|
+
expect(output_buffer.to_str).to have_tag("form li label[@for='context2_author_post_ids_19']")
|
|
459
460
|
end
|
|
460
461
|
|
|
461
462
|
it_should_have_input_with_id('context2_author_post_ids_19')
|
|
@@ -465,7 +466,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
465
466
|
describe "when index is provided" do
|
|
466
467
|
|
|
467
468
|
before do
|
|
468
|
-
@output_buffer = ''
|
|
469
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
469
470
|
mock_everything
|
|
470
471
|
|
|
471
472
|
concat(semantic_form_for(@fred) do |builder|
|
|
@@ -476,15 +477,15 @@ RSpec.describe 'check_boxes input' do
|
|
|
476
477
|
end
|
|
477
478
|
|
|
478
479
|
it 'should index the id of the wrapper' do
|
|
479
|
-
expect(output_buffer).to have_tag("li#author_post_3_authors_input")
|
|
480
|
+
expect(output_buffer.to_str).to have_tag("li#author_post_3_authors_input")
|
|
480
481
|
end
|
|
481
482
|
|
|
482
483
|
it 'should index the id of the input tag' do
|
|
483
|
-
expect(output_buffer).to have_tag("input#author_post_3_author_ids_42")
|
|
484
|
+
expect(output_buffer.to_str).to have_tag("input#author_post_3_author_ids_42")
|
|
484
485
|
end
|
|
485
486
|
|
|
486
487
|
it 'should index the name of the checkbox input' do
|
|
487
|
-
expect(output_buffer).to have_tag("input[@type='checkbox'][@name='author[post][3][author_ids][]']")
|
|
488
|
+
expect(output_buffer.to_str).to have_tag("input[@type='checkbox'][@name='author[post][3][author_ids][]']")
|
|
488
489
|
end
|
|
489
490
|
|
|
490
491
|
end
|
|
@@ -492,7 +493,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
492
493
|
|
|
493
494
|
describe "when collection is an array" do
|
|
494
495
|
before do
|
|
495
|
-
@output_buffer = ''
|
|
496
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
496
497
|
@_collection = [["First", 1], ["Second", 2]]
|
|
497
498
|
mock_everything
|
|
498
499
|
|
|
@@ -503,13 +504,13 @@ RSpec.describe 'check_boxes input' do
|
|
|
503
504
|
|
|
504
505
|
it "should use array items for labels and values" do
|
|
505
506
|
@_collection.each do |post|
|
|
506
|
-
expect(output_buffer).to have_tag('form li fieldset ol li label', :text => /#{post.first}/)
|
|
507
|
-
expect(output_buffer).to have_tag("form li fieldset ol li label[@for='author_post_ids_#{post.last}']")
|
|
507
|
+
expect(output_buffer.to_str).to have_tag('form li fieldset ol li label', :text => /#{post.first}/)
|
|
508
|
+
expect(output_buffer.to_str).to have_tag("form li fieldset ol li label[@for='author_post_ids_#{post.last}']")
|
|
508
509
|
end
|
|
509
510
|
end
|
|
510
511
|
|
|
511
512
|
it "should not check any items" do
|
|
512
|
-
expect(output_buffer).to have_tag('form li input[@checked]', :count => 0)
|
|
513
|
+
expect(output_buffer.to_str).to have_tag('form li input[@checked]', :count => 0)
|
|
513
514
|
end
|
|
514
515
|
|
|
515
516
|
describe "and the attribute has values" do
|
|
@@ -522,7 +523,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
522
523
|
end
|
|
523
524
|
|
|
524
525
|
it "should check the appropriate items" do
|
|
525
|
-
expect(output_buffer).to have_tag("form li input[@value='1'][@checked]")
|
|
526
|
+
expect(output_buffer.to_str).to have_tag("form li input[@value='1'][@checked]")
|
|
526
527
|
end
|
|
527
528
|
end
|
|
528
529
|
|
|
@@ -537,7 +538,7 @@ RSpec.describe 'check_boxes input' do
|
|
|
537
538
|
|
|
538
539
|
it "should have injected the html attributes" do
|
|
539
540
|
@_collection.each do |v|
|
|
540
|
-
expect(output_buffer).to have_tag("form li input[@value='#{v[1]}'][@#{v[2].keys[0]}='#{v[2].values[0]}']")
|
|
541
|
+
expect(output_buffer.to_str).to have_tag("form li input[@value='#{v[1]}'][@#{v[2].keys[0]}='#{v[2].values[0]}']")
|
|
541
542
|
end
|
|
542
543
|
end
|
|
543
544
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'spec_helper'
|
|
3
4
|
|
|
4
5
|
RSpec.describe 'color input' do
|
|
@@ -6,7 +7,7 @@ RSpec.describe 'color input' do
|
|
|
6
7
|
include FormtasticSpecHelper
|
|
7
8
|
|
|
8
9
|
before do
|
|
9
|
-
@output_buffer = ''
|
|
10
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
10
11
|
mock_everything
|
|
11
12
|
end
|
|
12
13
|
|
|
@@ -45,7 +46,7 @@ RSpec.describe 'color input' do
|
|
|
45
46
|
describe "when index is provided" do
|
|
46
47
|
|
|
47
48
|
before do
|
|
48
|
-
@output_buffer = ''
|
|
49
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
49
50
|
mock_everything
|
|
50
51
|
|
|
51
52
|
concat(semantic_form_for(@new_post) do |builder|
|
|
@@ -56,15 +57,15 @@ RSpec.describe 'color input' do
|
|
|
56
57
|
end
|
|
57
58
|
|
|
58
59
|
it 'should index the id of the wrapper' do
|
|
59
|
-
expect(output_buffer).to have_tag("li#post_author_attributes_3_name_input")
|
|
60
|
+
expect(output_buffer.to_str).to have_tag("li#post_author_attributes_3_name_input")
|
|
60
61
|
end
|
|
61
62
|
|
|
62
63
|
it 'should index the id of the select tag' do
|
|
63
|
-
expect(output_buffer).to have_tag("input#post_author_attributes_3_name")
|
|
64
|
+
expect(output_buffer.to_str).to have_tag("input#post_author_attributes_3_name")
|
|
64
65
|
end
|
|
65
66
|
|
|
66
67
|
it 'should index the name of the select tag' do
|
|
67
|
-
expect(output_buffer).to have_tag("input[@name='post[author_attributes][3][name]']")
|
|
68
|
+
expect(output_buffer.to_str).to have_tag("input[@name='post[author_attributes][3][name]']")
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
end
|
|
@@ -76,7 +77,7 @@ RSpec.describe 'color input' do
|
|
|
76
77
|
concat(semantic_form_for(@new_post) do |builder|
|
|
77
78
|
concat(builder.input(:title, :as => :color, :required => true))
|
|
78
79
|
end)
|
|
79
|
-
expect(output_buffer).to have_tag("input[@required]")
|
|
80
|
+
expect(output_buffer.to_str).to have_tag("input[@required]")
|
|
80
81
|
end
|
|
81
82
|
end
|
|
82
83
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'spec_helper'
|
|
3
4
|
|
|
4
5
|
RSpec.describe 'country input' do
|
|
@@ -6,7 +7,7 @@ RSpec.describe 'country input' do
|
|
|
6
7
|
include FormtasticSpecHelper
|
|
7
8
|
|
|
8
9
|
before do
|
|
9
|
-
@output_buffer = ''
|
|
10
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
10
11
|
mock_everything
|
|
11
12
|
end
|
|
12
13
|
|
|
@@ -39,13 +40,13 @@ RSpec.describe 'country input' do
|
|
|
39
40
|
#it_should_apply_error_logic_for_input_type(:country)
|
|
40
41
|
|
|
41
42
|
it 'should generate a label for the input' do
|
|
42
|
-
expect(output_buffer).to have_tag('form li label')
|
|
43
|
-
expect(output_buffer).to have_tag('form li label[@for="post_country"]')
|
|
44
|
-
expect(output_buffer).to have_tag('form li label', :text => /Country/)
|
|
43
|
+
expect(output_buffer.to_str).to have_tag('form li label')
|
|
44
|
+
expect(output_buffer.to_str).to have_tag('form li label[@for="post_country"]')
|
|
45
|
+
expect(output_buffer.to_str).to have_tag('form li label', :text => /Country/)
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
it "should generate a select" do
|
|
48
|
-
expect(output_buffer).to have_tag("form li select")
|
|
49
|
+
expect(output_buffer.to_str).to have_tag("form li select")
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
end
|
|
@@ -80,7 +81,7 @@ RSpec.describe 'country input' do
|
|
|
80
81
|
describe "when namespace is provided" do
|
|
81
82
|
|
|
82
83
|
before do
|
|
83
|
-
@output_buffer = ''
|
|
84
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
84
85
|
mock_everything
|
|
85
86
|
|
|
86
87
|
concat(semantic_form_for(@new_post, :namespace => 'context2') do |builder|
|
|
@@ -107,7 +108,7 @@ RSpec.describe 'country input' do
|
|
|
107
108
|
end
|
|
108
109
|
|
|
109
110
|
it "should render a country input" do
|
|
110
|
-
expect(output_buffer).to have_tag "form li.country"
|
|
111
|
+
expect(output_buffer.to_str).to have_tag "form li.country"
|
|
111
112
|
end
|
|
112
113
|
end
|
|
113
114
|
|
|
@@ -121,8 +122,8 @@ RSpec.describe 'country input' do
|
|
|
121
122
|
end
|
|
122
123
|
|
|
123
124
|
it "should render a country input" do
|
|
124
|
-
expect(output_buffer).not_to have_tag "form li.country"
|
|
125
|
-
expect(output_buffer).to have_tag "form li.string", :count => 2
|
|
125
|
+
expect(output_buffer.to_str).not_to have_tag "form li.country"
|
|
126
|
+
expect(output_buffer.to_str).to have_tag "form li.string", :count => 2
|
|
126
127
|
end
|
|
127
128
|
|
|
128
129
|
end
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'spec_helper'
|
|
3
4
|
|
|
4
5
|
RSpec.describe "datalist inputs" do
|
|
5
6
|
include FormtasticSpecHelper
|
|
6
7
|
|
|
7
8
|
before do
|
|
8
|
-
@output_buffer = ''
|
|
9
|
+
@output_buffer = ActionView::OutputBuffer.new ''
|
|
9
10
|
mock_everything
|
|
10
11
|
end
|
|
11
12
|
|