formtastic 3.1.5 → 4.0.0.rc1
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 +5 -5
- data/.gitattributes +1 -0
- data/.gitignore +3 -2
- data/.travis.yml +28 -40
- data/CHANGELOG.md +49 -0
- data/DEPRECATIONS +1 -1
- data/Gemfile.lock +104 -0
- data/README.md +628 -629
- data/Rakefile +20 -1
- data/app/assets/stylesheets/formtastic.css +1 -1
- data/bin/appraisal +8 -0
- data/formtastic.gemspec +8 -14
- data/gemfiles/rails_5.2/Gemfile +5 -0
- data/gemfiles/rails_6.0/Gemfile +5 -0
- data/gemfiles/rails_edge/Gemfile +13 -0
- data/lib/formtastic.rb +5 -11
- data/lib/formtastic/actions.rb +6 -3
- data/lib/formtastic/deprecation.rb +1 -38
- data/lib/formtastic/engine.rb +3 -1
- data/lib/formtastic/form_builder.rb +8 -24
- data/lib/formtastic/helpers/action_helper.rb +1 -48
- data/lib/formtastic/helpers/errors_helper.rb +2 -2
- data/lib/formtastic/helpers/fieldset_wrapper.rb +7 -3
- data/lib/formtastic/helpers/input_helper.rb +18 -76
- data/lib/formtastic/helpers/inputs_helper.rb +12 -3
- data/lib/formtastic/i18n.rb +1 -1
- data/lib/formtastic/inputs.rb +32 -29
- data/lib/formtastic/inputs/base/collections.rb +1 -5
- data/lib/formtastic/inputs/base/errors.rb +4 -4
- data/lib/formtastic/inputs/base/hints.rb +1 -1
- data/lib/formtastic/inputs/base/timeish.rb +5 -1
- data/lib/formtastic/inputs/base/validations.rb +19 -9
- data/lib/formtastic/inputs/check_boxes_input.rb +3 -3
- data/lib/formtastic/inputs/color_input.rb +0 -1
- data/lib/formtastic/inputs/select_input.rb +1 -1
- data/lib/formtastic/localizer.rb +5 -7
- data/lib/formtastic/version.rb +1 -1
- data/lib/generators/templates/formtastic.rb +4 -6
- data/script/integration-template.rb +71 -0
- data/script/integration.sh +19 -0
- data/spec/action_class_finder_spec.rb +1 -1
- data/spec/actions/button_action_spec.rb +8 -8
- data/spec/actions/generic_action_spec.rb +60 -60
- data/spec/actions/input_action_spec.rb +7 -7
- data/spec/actions/link_action_spec.rb +10 -10
- data/spec/builder/custom_builder_spec.rb +36 -20
- data/spec/builder/error_proc_spec.rb +4 -4
- data/spec/builder/semantic_fields_for_spec.rb +27 -27
- data/spec/generators/formtastic/form/form_generator_spec.rb +25 -25
- data/spec/generators/formtastic/input/input_generator_spec.rb +31 -31
- data/spec/generators/formtastic/install/install_generator_spec.rb +9 -9
- data/spec/helpers/action_helper_spec.rb +328 -10
- data/spec/helpers/actions_helper_spec.rb +17 -17
- data/spec/helpers/form_helper_spec.rb +33 -33
- data/spec/helpers/input_helper_spec.rb +975 -2
- data/spec/helpers/inputs_helper_spec.rb +120 -105
- data/spec/helpers/reflection_helper_spec.rb +3 -3
- data/spec/helpers/semantic_errors_helper_spec.rb +22 -22
- data/spec/i18n_spec.rb +26 -26
- data/spec/input_class_finder_spec.rb +1 -1
- data/spec/inputs/base/collections_spec.rb +6 -6
- data/spec/inputs/base/validations_spec.rb +157 -19
- data/spec/inputs/boolean_input_spec.rb +55 -55
- data/spec/inputs/check_boxes_input_spec.rb +96 -95
- data/spec/inputs/color_input_spec.rb +51 -63
- data/spec/inputs/country_input_spec.rb +20 -20
- data/spec/inputs/custom_input_spec.rb +2 -6
- data/spec/inputs/datalist_input_spec.rb +1 -1
- data/spec/inputs/date_picker_input_spec.rb +42 -42
- data/spec/inputs/date_select_input_spec.rb +51 -37
- data/spec/inputs/datetime_picker_input_spec.rb +46 -46
- data/spec/inputs/datetime_select_input_spec.rb +53 -37
- data/spec/inputs/email_input_spec.rb +5 -5
- data/spec/inputs/file_input_spec.rb +6 -6
- data/spec/inputs/hidden_input_spec.rb +18 -18
- data/spec/inputs/include_blank_spec.rb +8 -8
- data/spec/inputs/label_spec.rb +20 -20
- data/spec/inputs/number_input_spec.rb +112 -112
- data/spec/inputs/password_input_spec.rb +5 -5
- data/spec/inputs/phone_input_spec.rb +5 -5
- data/spec/inputs/placeholder_spec.rb +5 -5
- data/spec/inputs/radio_input_spec.rb +63 -65
- data/spec/inputs/range_input_spec.rb +66 -66
- data/spec/inputs/readonly_spec.rb +4 -4
- data/spec/inputs/search_input_spec.rb +5 -5
- data/spec/inputs/select_input_spec.rb +92 -96
- data/spec/inputs/string_input_spec.rb +23 -23
- data/spec/inputs/text_input_spec.rb +16 -16
- data/spec/inputs/time_picker_input_spec.rb +43 -43
- data/spec/inputs/time_select_input_spec.rb +67 -54
- data/spec/inputs/time_zone_input_spec.rb +19 -19
- data/spec/inputs/url_input_spec.rb +5 -5
- data/spec/inputs/with_options_spec.rb +7 -7
- data/spec/localizer_spec.rb +17 -17
- data/spec/namespaced_class_finder_spec.rb +2 -2
- data/spec/schema.rb +21 -0
- data/spec/spec_helper.rb +163 -223
- data/spec/support/custom_macros.rb +72 -75
- data/spec/support/shared_examples.rb +0 -1301
- data/spec/support/test_environment.rb +23 -9
- metadata +33 -123
- data/Appraisals +0 -43
- data/CHANGELOG +0 -54
- data/gemfiles/rails_3.2.gemfile +0 -9
- data/gemfiles/rails_4.0.4.gemfile +0 -8
- data/gemfiles/rails_4.1.gemfile +0 -8
- data/gemfiles/rails_4.2.gemfile +0 -8
- data/gemfiles/rails_4.gemfile +0 -8
- data/gemfiles/rails_5.0.gemfile +0 -8
- data/gemfiles/rails_edge.gemfile +0 -15
- data/lib/formtastic/util.rb +0 -57
- data/spec/helpers/namespaced_action_helper_spec.rb +0 -43
- data/spec/helpers/namespaced_input_helper_spec.rb +0 -36
- data/spec/util_spec.rb +0 -66
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'date select input' do
|
4
|
+
RSpec.describe 'date select input' do
|
5
5
|
|
6
6
|
include FormtasticSpecHelper
|
7
7
|
|
@@ -28,30 +28,30 @@ describe 'date select input' do
|
|
28
28
|
it_should_apply_error_logic_for_input_type(:date_select)
|
29
29
|
|
30
30
|
it 'should have a legend and label with the label text inside the fieldset' do
|
31
|
-
output_buffer.
|
31
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label label', :text => /Publish at/)
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should associate the legend label with the first select' do
|
35
|
-
output_buffer.
|
36
|
-
output_buffer.
|
37
|
-
output_buffer.
|
38
|
-
output_buffer.
|
35
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label')
|
36
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label label')
|
37
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label label[@for]')
|
38
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label label[@for="post_publish_at_1i"]')
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should have an ordered list of three items inside the fieldset' do
|
42
|
-
output_buffer.
|
43
|
-
output_buffer.
|
42
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol.fragments-group')
|
43
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li.fragment', :count => 3)
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should have three labels for year, month and day' do
|
47
|
-
output_buffer.
|
48
|
-
output_buffer.
|
49
|
-
output_buffer.
|
50
|
-
output_buffer.
|
47
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :count => 3)
|
48
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :text => /year/i)
|
49
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :text => /month/i)
|
50
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :text => /day/i)
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'should have three selects for year, month and day' do
|
54
|
-
output_buffer.
|
54
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li select', :count => 3)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -85,19 +85,19 @@ describe 'date select input' do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
it 'should index the id of the wrapper' do
|
88
|
-
output_buffer.
|
88
|
+
expect(output_buffer).to have_tag("li#post_author_attributes_3_created_at_input")
|
89
89
|
end
|
90
90
|
|
91
91
|
it 'should index the id of the select tag' do
|
92
|
-
output_buffer.
|
93
|
-
output_buffer.
|
94
|
-
output_buffer.
|
92
|
+
expect(output_buffer).to have_tag("select#post_author_attributes_3_created_at_1i")
|
93
|
+
expect(output_buffer).to have_tag("select#post_author_attributes_3_created_at_2i")
|
94
|
+
expect(output_buffer).to have_tag("select#post_author_attributes_3_created_at_3i")
|
95
95
|
end
|
96
96
|
|
97
97
|
it 'should index the name of the select tag' do
|
98
|
-
output_buffer.
|
99
|
-
output_buffer.
|
100
|
-
output_buffer.
|
98
|
+
expect(output_buffer).to have_tag("select[@name='post[author_attributes][3][created_at(1i)]']")
|
99
|
+
expect(output_buffer).to have_tag("select[@name='post[author_attributes][3][created_at(2i)]']")
|
100
|
+
expect(output_buffer).to have_tag("select[@name='post[author_attributes][3][created_at(3i)]']")
|
101
101
|
end
|
102
102
|
|
103
103
|
end
|
@@ -110,9 +110,9 @@ describe 'date select input' do
|
|
110
110
|
concat(semantic_form_for(@new_post) do |builder|
|
111
111
|
concat(builder.input(:created_at, :as => :date_select, :labels => { field => "another #{field} label" }))
|
112
112
|
end)
|
113
|
-
output_buffer.
|
113
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :count => fields.length)
|
114
114
|
fields.each do |f|
|
115
|
-
output_buffer.
|
115
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :text => f == field ? /another #{f} label/i : /#{f}/i)
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
@@ -121,9 +121,9 @@ describe 'date select input' do
|
|
121
121
|
concat(semantic_form_for(@new_post) do |builder|
|
122
122
|
concat(builder.input(:created_at, :as => :date_select, :labels => { field => "" }))
|
123
123
|
end)
|
124
|
-
output_buffer.
|
124
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :count => fields.length-1)
|
125
125
|
fields.each do |f|
|
126
|
-
output_buffer.
|
126
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :text => /#{f}/i) unless field == f
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
@@ -132,9 +132,9 @@ describe 'date select input' do
|
|
132
132
|
concat(semantic_form_for(@new_post) do |builder|
|
133
133
|
concat(builder.input(:created_at, :as => :date_select, :labels => { field => false }))
|
134
134
|
end)
|
135
|
-
output_buffer.
|
135
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :count => fields.length-1)
|
136
136
|
fields.each do |f|
|
137
|
-
output_buffer.
|
137
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', /#{f}/i) unless field == f
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
@@ -143,7 +143,7 @@ describe 'date select input' do
|
|
143
143
|
concat(semantic_form_for(@new_post) do |builder|
|
144
144
|
concat(builder.input(:created_at, :as => :date_select, :include_seconds => true, :labels => { field => false }))
|
145
145
|
end)
|
146
|
-
output_buffer.
|
146
|
+
expect(output_buffer).not_to include(">")
|
147
147
|
end
|
148
148
|
|
149
149
|
end
|
@@ -153,17 +153,31 @@ describe 'date select input' do
|
|
153
153
|
concat(semantic_form_for(@new_post) do |builder|
|
154
154
|
concat(builder.input(:created_at, :as => :date_select, :labels => false))
|
155
155
|
end)
|
156
|
-
output_buffer.
|
156
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset ol li label', :count => 0)
|
157
157
|
end
|
158
158
|
end
|
159
|
-
|
159
|
+
|
160
|
+
describe ":selected option for setting a value" do
|
161
|
+
it "should set the selected value for the form" do
|
162
|
+
concat(
|
163
|
+
semantic_form_for(@new_post) do |f|
|
164
|
+
concat(f.input(:created_at, :as => :datetime_select, :selected => Date.new(2018, 10, 4)))
|
165
|
+
end
|
166
|
+
)
|
167
|
+
|
168
|
+
expect(output_buffer).to have_tag "option[value='2018'][selected='selected']"
|
169
|
+
expect(output_buffer).to have_tag "option[value='10'][selected='selected']"
|
170
|
+
expect(output_buffer).to have_tag "option[value='4'][selected='selected']"
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
160
174
|
describe "when required" do
|
161
175
|
it "should add the required attribute to the input's html options" do
|
162
176
|
with_config :use_required_attribute, true do
|
163
177
|
concat(semantic_form_for(@new_post) do |builder|
|
164
178
|
concat(builder.input(:title, :as => :date_select, :required => true))
|
165
179
|
end)
|
166
|
-
output_buffer.
|
180
|
+
expect(output_buffer).to have_tag("select[@required]", :count => 3)
|
167
181
|
end
|
168
182
|
end
|
169
183
|
end
|
@@ -177,11 +191,11 @@ describe 'date select input' do
|
|
177
191
|
end
|
178
192
|
|
179
193
|
it "should include a hidden input for day" do
|
180
|
-
output_buffer.
|
194
|
+
expect(output_buffer).to have_tag('input[@type="hidden"][@name="post[publish_at(3i)]"][@value="1"]')
|
181
195
|
end
|
182
196
|
|
183
197
|
it "should not include a select for day" do
|
184
|
-
output_buffer.
|
198
|
+
expect(output_buffer).not_to have_tag('select[@name="post[publish_at(3i)]"]')
|
185
199
|
end
|
186
200
|
end
|
187
201
|
|
@@ -194,11 +208,11 @@ describe 'date select input' do
|
|
194
208
|
end
|
195
209
|
|
196
210
|
it "should include a hidden input for month" do
|
197
|
-
output_buffer.
|
211
|
+
expect(output_buffer).to have_tag('input[@type="hidden"][@name="post[publish_at(2i)]"][@value="1"]')
|
198
212
|
end
|
199
213
|
|
200
214
|
it "should not include a select for month" do
|
201
|
-
output_buffer.
|
215
|
+
expect(output_buffer).not_to have_tag('select[@name="post[publish_at(2i)]"]')
|
202
216
|
end
|
203
217
|
end
|
204
218
|
|
@@ -211,11 +225,11 @@ describe 'date select input' do
|
|
211
225
|
end
|
212
226
|
|
213
227
|
it "should include a hidden input for month" do
|
214
|
-
output_buffer.
|
228
|
+
expect(output_buffer).to have_tag("input[@type=\"hidden\"][@name=\"post[publish_at(1i)]\"][@value=\"#{Time.now.year}\"]")
|
215
229
|
end
|
216
230
|
|
217
231
|
it "should not include a select for month" do
|
218
|
-
output_buffer.
|
232
|
+
expect(output_buffer).not_to have_tag('select[@name="post[publish_at(1i)]"]')
|
219
233
|
end
|
220
234
|
end
|
221
235
|
|
@@ -228,7 +242,7 @@ describe 'date select input' do
|
|
228
242
|
end
|
229
243
|
|
230
244
|
it 'should associate the legend label with the new first select' do
|
231
|
-
output_buffer.
|
245
|
+
expect(output_buffer).to have_tag('form li.date_select fieldset legend.label label[@for="post_publish_at_3i"]')
|
232
246
|
end
|
233
247
|
end
|
234
248
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'datetime_picker input' do
|
4
|
+
RSpec.describe 'datetime_picker input' do
|
5
5
|
|
6
6
|
include FormtasticSpecHelper
|
7
7
|
|
@@ -44,7 +44,7 @@ describe 'datetime_picker input' do
|
|
44
44
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
45
45
|
end
|
46
46
|
)
|
47
|
-
output_buffer.
|
47
|
+
expect(output_buffer).to have_tag "input[type='datetime-local']"
|
48
48
|
end
|
49
49
|
|
50
50
|
it "can be set to true for a datetime-local" do
|
@@ -53,7 +53,7 @@ describe 'datetime_picker input' do
|
|
53
53
|
concat(f.input(:publish_at, :as => :datetime_picker, :local => true))
|
54
54
|
end
|
55
55
|
)
|
56
|
-
output_buffer.
|
56
|
+
expect(output_buffer).to have_tag "input[type='datetime-local']"
|
57
57
|
end
|
58
58
|
|
59
59
|
it "can be set to false for a datetime" do
|
@@ -62,7 +62,7 @@ describe 'datetime_picker input' do
|
|
62
62
|
concat(f.input(:publish_at, :as => :datetime_picker, :local => false))
|
63
63
|
end
|
64
64
|
)
|
65
|
-
output_buffer.
|
65
|
+
expect(output_buffer).to have_tag "input[type='datetime']"
|
66
66
|
end
|
67
67
|
|
68
68
|
end
|
@@ -75,7 +75,7 @@ describe 'datetime_picker input' do
|
|
75
75
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
76
76
|
end
|
77
77
|
)
|
78
|
-
output_buffer.
|
78
|
+
expect(output_buffer).to have_tag "input[size='16']"
|
79
79
|
end
|
80
80
|
|
81
81
|
it "can be set from :input_html options" do
|
@@ -84,7 +84,7 @@ describe 'datetime_picker input' do
|
|
84
84
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :size => "11" }))
|
85
85
|
end
|
86
86
|
)
|
87
|
-
output_buffer.
|
87
|
+
expect(output_buffer).to have_tag "input[size='11']"
|
88
88
|
end
|
89
89
|
|
90
90
|
it "can be set from options (ignoring input_html)" do
|
@@ -93,7 +93,7 @@ describe 'datetime_picker input' do
|
|
93
93
|
concat(f.input(:publish_at, :as => :datetime_picker, :size => '12', :input_html => { :size => "11" }))
|
94
94
|
end
|
95
95
|
)
|
96
|
-
output_buffer.
|
96
|
+
expect(output_buffer).to have_tag "input[size='12']"
|
97
97
|
end
|
98
98
|
|
99
99
|
end
|
@@ -106,7 +106,7 @@ describe 'datetime_picker input' do
|
|
106
106
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
107
107
|
end
|
108
108
|
)
|
109
|
-
output_buffer.
|
109
|
+
expect(output_buffer).to have_tag "input[maxlength='16']"
|
110
110
|
end
|
111
111
|
|
112
112
|
it "can be set from :input_html options" do
|
@@ -115,7 +115,7 @@ describe 'datetime_picker input' do
|
|
115
115
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :maxlength => "11" }))
|
116
116
|
end
|
117
117
|
)
|
118
|
-
output_buffer.
|
118
|
+
expect(output_buffer).to have_tag "input[maxlength='11']"
|
119
119
|
end
|
120
120
|
|
121
121
|
it "can be set from options (ignoring input_html)" do
|
@@ -124,7 +124,7 @@ describe 'datetime_picker input' do
|
|
124
124
|
concat(f.input(:publish_at, :as => :datetime_picker, :maxlength => 12, :input_html => { :maxlength => "11" }))
|
125
125
|
end
|
126
126
|
)
|
127
|
-
output_buffer.
|
127
|
+
expect(output_buffer).to have_tag "input[maxlength='12']"
|
128
128
|
end
|
129
129
|
|
130
130
|
end
|
@@ -139,7 +139,7 @@ describe 'datetime_picker input' do
|
|
139
139
|
concat(f.input(:publish_at, :as => :datetime_picker ))
|
140
140
|
end
|
141
141
|
)
|
142
|
-
output_buffer.
|
142
|
+
expect(output_buffer).not_to have_tag "li input[value]"
|
143
143
|
end
|
144
144
|
|
145
145
|
it "can be set from :input_html options" do
|
@@ -148,7 +148,7 @@ describe 'datetime_picker input' do
|
|
148
148
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :value => "1111-11-11T23:00:00" }))
|
149
149
|
end
|
150
150
|
)
|
151
|
-
output_buffer.
|
151
|
+
expect(output_buffer).to have_tag "input[value='1111-11-11T23:00:00']"
|
152
152
|
end
|
153
153
|
|
154
154
|
end
|
@@ -157,7 +157,7 @@ describe 'datetime_picker input' do
|
|
157
157
|
|
158
158
|
before do
|
159
159
|
@date = Date.new(2000, 11, 11)
|
160
|
-
@new_post.
|
160
|
+
allow(@new_post).to receive(:publish_at).and_return(@date)
|
161
161
|
end
|
162
162
|
|
163
163
|
it "renders the date as YYYY-MM-DDT00:00:00" do
|
@@ -166,7 +166,7 @@ describe 'datetime_picker input' do
|
|
166
166
|
concat(f.input(:publish_at, :as => :datetime_picker ))
|
167
167
|
end
|
168
168
|
)
|
169
|
-
output_buffer.
|
169
|
+
expect(output_buffer).to have_tag "input[value='2000-11-11T00:00:00']"
|
170
170
|
end
|
171
171
|
|
172
172
|
it "can be set from :input_html options" do
|
@@ -175,7 +175,7 @@ describe 'datetime_picker input' do
|
|
175
175
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :value => "1111-11-11T00:00:00" }))
|
176
176
|
end
|
177
177
|
)
|
178
|
-
output_buffer.
|
178
|
+
expect(output_buffer).to have_tag "input[value='1111-11-11T00:00:00']"
|
179
179
|
end
|
180
180
|
|
181
181
|
end
|
@@ -184,7 +184,7 @@ describe 'datetime_picker input' do
|
|
184
184
|
|
185
185
|
before do
|
186
186
|
@time = Time.utc(2000,11,11,11,11,11)
|
187
|
-
@new_post.
|
187
|
+
allow(@new_post).to receive(:publish_at).and_return(@time)
|
188
188
|
end
|
189
189
|
|
190
190
|
it "renders the time as a YYYY-MM-DD HH:MM" do
|
@@ -193,7 +193,7 @@ describe 'datetime_picker input' do
|
|
193
193
|
concat(f.input(:publish_at, :as => :datetime_picker ))
|
194
194
|
end
|
195
195
|
)
|
196
|
-
output_buffer.
|
196
|
+
expect(output_buffer).to have_tag "input[value='2000-11-11T11:11:11']"
|
197
197
|
end
|
198
198
|
|
199
199
|
it "can be set from :input_html options" do
|
@@ -202,7 +202,7 @@ describe 'datetime_picker input' do
|
|
202
202
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :value => "1111-11-11T11:11:11" }))
|
203
203
|
end
|
204
204
|
)
|
205
|
-
output_buffer.
|
205
|
+
expect(output_buffer).to have_tag "input[value='1111-11-11T11:11:11']"
|
206
206
|
end
|
207
207
|
|
208
208
|
end
|
@@ -210,7 +210,7 @@ describe 'datetime_picker input' do
|
|
210
210
|
context "when method returns an empty String" do
|
211
211
|
|
212
212
|
before do
|
213
|
-
@new_post.
|
213
|
+
allow(@new_post).to receive(:publish_at).and_return("")
|
214
214
|
end
|
215
215
|
|
216
216
|
it "will be empty" do
|
@@ -219,7 +219,7 @@ describe 'datetime_picker input' do
|
|
219
219
|
concat(f.input(:publish_at, :as => :datetime_picker ))
|
220
220
|
end
|
221
221
|
)
|
222
|
-
output_buffer.
|
222
|
+
expect(output_buffer).to have_tag "input[value='']"
|
223
223
|
end
|
224
224
|
|
225
225
|
it "can be set from :input_html options" do
|
@@ -228,7 +228,7 @@ describe 'datetime_picker input' do
|
|
228
228
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :value => "1111-11-11T11:11:11" }))
|
229
229
|
end
|
230
230
|
)
|
231
|
-
output_buffer.
|
231
|
+
expect(output_buffer).to have_tag "input[value='1111-11-11T11:11:11']"
|
232
232
|
end
|
233
233
|
|
234
234
|
end
|
@@ -236,7 +236,7 @@ describe 'datetime_picker input' do
|
|
236
236
|
context "when method returns a String" do
|
237
237
|
|
238
238
|
before do
|
239
|
-
@new_post.
|
239
|
+
allow(@new_post).to receive(:publish_at).and_return("yeah")
|
240
240
|
end
|
241
241
|
|
242
242
|
it "will be the string" do
|
@@ -245,7 +245,7 @@ describe 'datetime_picker input' do
|
|
245
245
|
concat(f.input(:publish_at, :as => :datetime_picker ))
|
246
246
|
end
|
247
247
|
)
|
248
|
-
output_buffer.
|
248
|
+
expect(output_buffer).to have_tag "input[value='yeah']"
|
249
249
|
end
|
250
250
|
|
251
251
|
it "can be set from :input_html options" do
|
@@ -254,7 +254,7 @@ describe 'datetime_picker input' do
|
|
254
254
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :value => "1111-11-11T11:11:11" }))
|
255
255
|
end
|
256
256
|
)
|
257
|
-
output_buffer.
|
257
|
+
expect(output_buffer).to have_tag "input[value='1111-11-11T11:11:11']"
|
258
258
|
end
|
259
259
|
|
260
260
|
end
|
@@ -269,7 +269,7 @@ describe 'datetime_picker input' do
|
|
269
269
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
270
270
|
end
|
271
271
|
)
|
272
|
-
output_buffer.
|
272
|
+
expect(output_buffer).not_to have_tag "input[min]"
|
273
273
|
end
|
274
274
|
|
275
275
|
it "can be set from :input_html options" do
|
@@ -278,7 +278,7 @@ describe 'datetime_picker input' do
|
|
278
278
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :min => "1970-01-01 12:00" }))
|
279
279
|
end
|
280
280
|
)
|
281
|
-
output_buffer.
|
281
|
+
expect(output_buffer).to have_tag "input[min='1970-01-01 12:00']"
|
282
282
|
end
|
283
283
|
|
284
284
|
end
|
@@ -291,7 +291,7 @@ describe 'datetime_picker input' do
|
|
291
291
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
292
292
|
end
|
293
293
|
)
|
294
|
-
output_buffer.
|
294
|
+
expect(output_buffer).not_to have_tag "input[max]"
|
295
295
|
end
|
296
296
|
|
297
297
|
it "can be set from :input_html options" do
|
@@ -300,7 +300,7 @@ describe 'datetime_picker input' do
|
|
300
300
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :max => "1970-01-01 12:00" }))
|
301
301
|
end
|
302
302
|
)
|
303
|
-
output_buffer.
|
303
|
+
expect(output_buffer).to have_tag "input[max='1970-01-01 12:00']"
|
304
304
|
end
|
305
305
|
|
306
306
|
end
|
@@ -313,7 +313,7 @@ describe 'datetime_picker input' do
|
|
313
313
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
314
314
|
end
|
315
315
|
)
|
316
|
-
output_buffer.
|
316
|
+
expect(output_buffer).to have_tag "input[step='1']"
|
317
317
|
end
|
318
318
|
|
319
319
|
it "can be set from :input_html options" do
|
@@ -322,7 +322,7 @@ describe 'datetime_picker input' do
|
|
322
322
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :step => "5" }))
|
323
323
|
end
|
324
324
|
)
|
325
|
-
output_buffer.
|
325
|
+
expect(output_buffer).to have_tag "input[step='5']"
|
326
326
|
end
|
327
327
|
|
328
328
|
describe "macros" do
|
@@ -337,56 +337,56 @@ describe 'datetime_picker input' do
|
|
337
337
|
context ":second" do
|
338
338
|
let(:step) { :second }
|
339
339
|
it "uses 1" do
|
340
|
-
output_buffer.
|
340
|
+
expect(output_buffer).to have_tag "input[step='1']"
|
341
341
|
end
|
342
342
|
end
|
343
343
|
|
344
344
|
context ":minute" do
|
345
345
|
let(:step) { :minute }
|
346
346
|
it "uses 60" do
|
347
|
-
output_buffer.
|
347
|
+
expect(output_buffer).to have_tag "input[step='60']"
|
348
348
|
end
|
349
349
|
end
|
350
350
|
|
351
351
|
context ":fifteen_minutes" do
|
352
352
|
let(:step) { :fifteen_minutes }
|
353
353
|
it "uses 900" do
|
354
|
-
output_buffer.
|
354
|
+
expect(output_buffer).to have_tag "input[step='900']"
|
355
355
|
end
|
356
356
|
end
|
357
357
|
|
358
358
|
context ":quarter_hour" do
|
359
359
|
let(:step) { :quarter_hour }
|
360
360
|
it "uses 900" do
|
361
|
-
output_buffer.
|
361
|
+
expect(output_buffer).to have_tag "input[step='900']"
|
362
362
|
end
|
363
363
|
end
|
364
364
|
|
365
365
|
context ":thirty_minutes" do
|
366
366
|
let(:step) { :thirty_minutes }
|
367
367
|
it "uses 1800" do
|
368
|
-
output_buffer.
|
368
|
+
expect(output_buffer).to have_tag "input[step='1800']"
|
369
369
|
end
|
370
370
|
end
|
371
371
|
|
372
372
|
context ":half_hour" do
|
373
373
|
let(:step) { :half_hour }
|
374
374
|
it "uses 1800" do
|
375
|
-
output_buffer.
|
375
|
+
expect(output_buffer).to have_tag "input[step='1800']"
|
376
376
|
end
|
377
377
|
end
|
378
378
|
|
379
379
|
context ":hour" do
|
380
380
|
let(:step) { :hour }
|
381
381
|
it "uses 3600" do
|
382
|
-
output_buffer.
|
382
|
+
expect(output_buffer).to have_tag "input[step='3600']"
|
383
383
|
end
|
384
384
|
end
|
385
385
|
|
386
386
|
context ":sixty_minutes" do
|
387
387
|
let(:step) { :sixty_minutes }
|
388
388
|
it "uses 3600" do
|
389
|
-
output_buffer.
|
389
|
+
expect(output_buffer).to have_tag "input[step='3600']"
|
390
390
|
end
|
391
391
|
end
|
392
392
|
|
@@ -402,7 +402,7 @@ describe 'datetime_picker input' do
|
|
402
402
|
concat(f.input(:publish_at, :as => :datetime_picker))
|
403
403
|
end
|
404
404
|
)
|
405
|
-
output_buffer.
|
405
|
+
expect(output_buffer).not_to have_tag "input[placeholder]"
|
406
406
|
end
|
407
407
|
|
408
408
|
it "can be set from :input_html options" do
|
@@ -411,7 +411,7 @@ describe 'datetime_picker input' do
|
|
411
411
|
concat(f.input(:publish_at, :as => :datetime_picker, :input_html => { :placeholder => "1970-01-01 00:00" }))
|
412
412
|
end
|
413
413
|
)
|
414
|
-
output_buffer.
|
414
|
+
expect(output_buffer).to have_tag "input[placeholder='1970-01-01 00:00']"
|
415
415
|
end
|
416
416
|
|
417
417
|
context "with i18n set" do
|
@@ -424,7 +424,7 @@ describe 'datetime_picker input' do
|
|
424
424
|
concat(semantic_form_for(@new_post) do |builder|
|
425
425
|
concat(builder.input(:publish_at, :as => :datetime_picker))
|
426
426
|
end)
|
427
|
-
output_buffer.
|
427
|
+
expect(output_buffer).to have_tag('input[@placeholder="YYYY-MM-DD HH:MM"]')
|
428
428
|
end
|
429
429
|
end
|
430
430
|
|
@@ -433,7 +433,7 @@ describe 'datetime_picker input' do
|
|
433
433
|
concat(semantic_form_for(@new_post) do |builder|
|
434
434
|
concat(builder.input(:publish_at, :as => :datetime_picker, :input_html => { :placeholder => "Something" }))
|
435
435
|
end)
|
436
|
-
output_buffer.
|
436
|
+
expect(output_buffer).to have_tag('input[@placeholder="Something"]')
|
437
437
|
end
|
438
438
|
end
|
439
439
|
end
|
@@ -464,15 +464,15 @@ describe 'datetime_picker input' do
|
|
464
464
|
end
|
465
465
|
|
466
466
|
it 'should index the id of the wrapper' do
|
467
|
-
output_buffer.
|
467
|
+
expect(output_buffer).to have_tag("li#post_author_attributes_3_created_at_input")
|
468
468
|
end
|
469
469
|
|
470
470
|
it 'should index the id of the select tag' do
|
471
|
-
output_buffer.
|
471
|
+
expect(output_buffer).to have_tag("input#post_author_attributes_3_created_at")
|
472
472
|
end
|
473
473
|
|
474
474
|
it 'should index the name of the select tag' do
|
475
|
-
output_buffer.
|
475
|
+
expect(output_buffer).to have_tag("input[@name='post[author_attributes][3][created_at]']")
|
476
476
|
end
|
477
477
|
end
|
478
478
|
|
@@ -482,7 +482,7 @@ describe 'datetime_picker input' do
|
|
482
482
|
concat(semantic_form_for(@new_post) do |builder|
|
483
483
|
concat(builder.input(:publish_at, :as => :datetime_picker, :required => true))
|
484
484
|
end)
|
485
|
-
output_buffer.
|
485
|
+
expect(output_buffer).to have_tag("input[@required]")
|
486
486
|
end
|
487
487
|
end
|
488
488
|
end
|