simple_form 3.1.0.rc1 → 3.1.0.rc2
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.
Potentially problematic release.
This version of simple_form might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -1
- data/README.md +37 -6
- data/lib/generators/simple_form/templates/config/initializers/simple_form.rb +6 -2
- data/lib/generators/simple_form/templates/config/initializers/simple_form_bootstrap.rb +37 -14
- data/lib/simple_form.rb +8 -0
- data/lib/simple_form/components/labels.rb +1 -1
- data/lib/simple_form/form_builder.rb +29 -15
- data/lib/simple_form/inputs/boolean_input.rb +7 -4
- data/lib/simple_form/tags.rb +1 -0
- data/lib/simple_form/version.rb +1 -1
- data/lib/simple_form/wrappers/builder.rb +2 -2
- data/lib/simple_form/wrappers/many.rb +1 -0
- data/test/action_view_extensions/builder_test.rb +3 -3
- data/test/action_view_extensions/form_helper_test.rb +13 -13
- data/test/components/label_test.rb +35 -35
- data/test/form_builder/association_test.rb +4 -4
- data/test/form_builder/button_test.rb +5 -5
- data/test/form_builder/error_test.rb +18 -18
- data/test/form_builder/general_test.rb +65 -60
- data/test/form_builder/hint_test.rb +15 -15
- data/test/form_builder/input_field_test.rb +16 -16
- data/test/form_builder/label_test.rb +22 -13
- data/test/form_builder/wrapper_test.rb +54 -20
- data/test/inputs/boolean_input_test.rb +8 -8
- data/test/inputs/collection_check_boxes_input_test.rb +24 -7
- data/test/inputs/collection_radio_buttons_input_test.rb +40 -23
- data/test/inputs/collection_select_input_test.rb +45 -45
- data/test/inputs/datetime_input_test.rb +23 -23
- data/test/inputs/disabled_test.rb +15 -15
- data/test/inputs/discovery_test.rb +44 -5
- data/test/inputs/file_input_test.rb +2 -2
- data/test/inputs/general_test.rb +20 -20
- data/test/inputs/grouped_collection_select_input_test.rb +2 -2
- data/test/inputs/hidden_input_test.rb +4 -4
- data/test/inputs/numeric_input_test.rb +24 -24
- data/test/inputs/priority_input_test.rb +7 -7
- data/test/inputs/readonly_test.rb +19 -19
- data/test/inputs/required_test.rb +13 -13
- data/test/inputs/string_input_test.rb +23 -23
- data/test/inputs/text_input_test.rb +4 -4
- data/test/support/discovery_inputs.rb +20 -0
- data/test/support/misc_helpers.rb +22 -0
- data/test/support/models.rb +2 -1
- metadata +2 -2
@@ -3,49 +3,49 @@ require 'test_helper'
|
|
3
3
|
|
4
4
|
# Tests for datetime, date and time inputs when HTML5 compatibility is enabled in the wrapper.
|
5
5
|
class DateTimeInputWithHtml5Test < ActionView::TestCase
|
6
|
-
test 'input
|
6
|
+
test 'input generates a datetime input for datetime attributes if HTML5 compatibility is explicitly enbled' do
|
7
7
|
with_input_for @user, :created_at, :datetime, html5: true
|
8
8
|
|
9
9
|
assert_select 'input[type="datetime"]'
|
10
10
|
end
|
11
11
|
|
12
|
-
test 'input
|
12
|
+
test 'input generates a datetime select for datetime attributes' do
|
13
13
|
with_input_for @user, :created_at, :datetime
|
14
14
|
|
15
15
|
assert_select 'select.datetime'
|
16
16
|
end
|
17
17
|
|
18
|
-
test 'input
|
18
|
+
test 'input generates a date input for date attributes if HTML5 compatibility is explicitly enbled' do
|
19
19
|
with_input_for @user, :born_at, :date, html5: true
|
20
20
|
|
21
21
|
assert_select 'input[type="date"]'
|
22
22
|
end
|
23
23
|
|
24
|
-
test 'input
|
24
|
+
test 'input generates a date select for date attributes' do
|
25
25
|
with_input_for @user, :born_at, :date
|
26
26
|
|
27
27
|
assert_select 'select.date'
|
28
28
|
end
|
29
29
|
|
30
|
-
test 'input
|
30
|
+
test 'input generates a time input for time attributes if HTML5 compatibility is explicitly enbled' do
|
31
31
|
with_input_for @user, :delivery_time, :time, html5: true
|
32
32
|
|
33
33
|
assert_select 'input[type="time"]'
|
34
34
|
end
|
35
35
|
|
36
|
-
test 'input
|
36
|
+
test 'input generates a time select for time attributes' do
|
37
37
|
with_input_for @user, :delivery_time, :time
|
38
38
|
|
39
39
|
assert_select 'select.time'
|
40
40
|
end
|
41
41
|
|
42
|
-
test 'input
|
42
|
+
test 'input generates required html attribute' do
|
43
43
|
with_input_for @user, :delivery_time, :time, required: true, html5: true
|
44
44
|
assert_select 'input.required'
|
45
45
|
assert_select 'input[required]'
|
46
46
|
end
|
47
47
|
|
48
|
-
test 'input
|
48
|
+
test 'input has an aria-required html attribute' do
|
49
49
|
with_input_for @user, :delivery_time, :time, required: true, html5: true
|
50
50
|
assert_select 'input[aria-required=true]'
|
51
51
|
end
|
@@ -53,7 +53,7 @@ end
|
|
53
53
|
|
54
54
|
# Tests for datetime, date and time inputs when HTML5 compatibility is enabled in the wrapper.
|
55
55
|
class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
56
|
-
test 'input
|
56
|
+
test 'input generates a datetime select by default for datetime attributes' do
|
57
57
|
swap_wrapper do
|
58
58
|
with_input_for @user, :created_at, :datetime
|
59
59
|
1.upto(5) do |i|
|
@@ -62,7 +62,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
test 'input
|
65
|
+
test 'input is able to pass options to datetime select' do
|
66
66
|
with_input_for @user, :created_at, :datetime, html5: false,
|
67
67
|
disabled: true, prompt: { year: 'ano', month: 'mês', day: 'dia' }
|
68
68
|
|
@@ -72,7 +72,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
72
72
|
assert_select 'select.datetime option', 'dia'
|
73
73
|
end
|
74
74
|
|
75
|
-
test 'input
|
75
|
+
test 'input generates a datetime input for datetime attributes if HTML5 compatibility is explicitly enabled' do
|
76
76
|
swap_wrapper do
|
77
77
|
with_input_for @user, :created_at, :datetime, html5: true
|
78
78
|
|
@@ -80,7 +80,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
test 'input
|
83
|
+
test 'input generates a date select for date attributes' do
|
84
84
|
swap_wrapper do
|
85
85
|
with_input_for @user, :born_at, :date
|
86
86
|
assert_select 'select.date#user_born_at_1i'
|
@@ -90,7 +90,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
test 'input
|
93
|
+
test 'input is able to pass options to date select' do
|
94
94
|
with_input_for @user, :born_at, :date, as: :date, html5: false,
|
95
95
|
disabled: true, prompt: { year: 'ano', month: 'mês', day: 'dia' }
|
96
96
|
|
@@ -100,12 +100,12 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
100
100
|
assert_select 'select.date option', 'dia'
|
101
101
|
end
|
102
102
|
|
103
|
-
test 'input
|
103
|
+
test 'input is able to pass :default to date select' do
|
104
104
|
with_input_for @user, :born_at, :date, default: Date.today, html5: false
|
105
105
|
assert_select "select.date option[value=#{Date.today.year}][selected=selected]"
|
106
106
|
end
|
107
107
|
|
108
|
-
test 'input
|
108
|
+
test 'input generates a date input for date attributes if HTML5 compatibility is explicitly enabled' do
|
109
109
|
swap_wrapper do
|
110
110
|
with_input_for @user, :born_at, :date, html5: true
|
111
111
|
|
@@ -113,7 +113,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
-
test 'input
|
116
|
+
test 'input generates a time select for time attributes' do
|
117
117
|
swap_wrapper do
|
118
118
|
with_input_for @user, :delivery_time, :time
|
119
119
|
assert_select 'input[type=hidden]#user_delivery_time_1i'
|
@@ -124,7 +124,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
|
-
test 'input
|
127
|
+
test 'input is able to pass options to time select' do
|
128
128
|
with_input_for @user, :delivery_time, :time, required: true, html5: false,
|
129
129
|
disabled: true, prompt: { hour: 'hora', minute: 'minuto' }
|
130
130
|
|
@@ -133,7 +133,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
133
133
|
assert_select 'select.time option', 'minuto'
|
134
134
|
end
|
135
135
|
|
136
|
-
test 'input
|
136
|
+
test 'input generates a time input for time attributes if HTML5 compatibility is explicitly enabled' do
|
137
137
|
swap_wrapper do
|
138
138
|
with_input_for @user, :delivery_time, :time, html5: true
|
139
139
|
|
@@ -141,31 +141,31 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
test 'label
|
144
|
+
test 'label uses i18n to get target for date input type' do
|
145
145
|
store_translations(:en, date: { order: ['month', 'day', 'year'] }) do
|
146
146
|
with_input_for :project, :created_at, :date, html5: false
|
147
147
|
assert_select 'label[for=project_created_at_2i]'
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
-
test 'label
|
151
|
+
test 'label uses i18n to get target for datetime input type' do
|
152
152
|
store_translations(:en, date: { order: ['month', 'day', 'year'] }) do
|
153
153
|
with_input_for :project, :created_at, :datetime, html5: false
|
154
154
|
assert_select 'label[for=project_created_at_2i]'
|
155
155
|
end
|
156
156
|
end
|
157
157
|
|
158
|
-
test 'label
|
158
|
+
test 'label uses order to get target when date input type' do
|
159
159
|
with_input_for :project, :created_at, :date, order: ['month', 'year', 'day'], html5: false
|
160
160
|
assert_select 'label[for=project_created_at_2i]'
|
161
161
|
end
|
162
162
|
|
163
|
-
test 'label
|
163
|
+
test 'label uses order to get target when datetime input type' do
|
164
164
|
with_input_for :project, :created_at, :datetime, order: ['month', 'year', 'day'], html5: false
|
165
165
|
assert_select 'label[for=project_created_at_2i]'
|
166
166
|
end
|
167
167
|
|
168
|
-
test 'label
|
168
|
+
test 'label points to first option when time input type' do
|
169
169
|
with_input_for :project, :created_at, :time, html5: false
|
170
170
|
assert_select 'label[for=project_created_at_4i]'
|
171
171
|
end
|
@@ -1,77 +1,77 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class DisabledTest < ActionView::TestCase
|
4
|
-
test 'string input
|
4
|
+
test 'string input is disabled when disabled option is true' do
|
5
5
|
with_input_for @user, :name, :string, disabled: true
|
6
6
|
assert_select 'input.string.disabled[disabled]'
|
7
7
|
end
|
8
8
|
|
9
|
-
test 'text input
|
9
|
+
test 'text input is disabled when disabled option is true' do
|
10
10
|
with_input_for @user, :description, :text, disabled: true
|
11
11
|
assert_select 'textarea.text.disabled[disabled]'
|
12
12
|
end
|
13
13
|
|
14
|
-
test 'numeric input
|
14
|
+
test 'numeric input is disabled when disabled option is true' do
|
15
15
|
with_input_for @user, :age, :integer, disabled: true
|
16
16
|
assert_select 'input.integer.disabled[disabled]'
|
17
17
|
end
|
18
18
|
|
19
|
-
test 'date input
|
19
|
+
test 'date input is disabled when disabled option is true' do
|
20
20
|
with_input_for @user, :born_at, :date, disabled: true
|
21
21
|
assert_select 'select.date.disabled[disabled]'
|
22
22
|
end
|
23
23
|
|
24
|
-
test 'datetime input
|
24
|
+
test 'datetime input is disabled when disabled option is true' do
|
25
25
|
with_input_for @user, :created_at, :datetime, disabled: true
|
26
26
|
assert_select 'select.datetime.disabled[disabled]'
|
27
27
|
end
|
28
28
|
|
29
|
-
test 'string input
|
29
|
+
test 'string input does not be disabled when disabled option is false' do
|
30
30
|
with_input_for @user, :name, :string, disabled: false
|
31
31
|
assert_no_select 'input.string.disabled[disabled]'
|
32
32
|
end
|
33
33
|
|
34
|
-
test 'text input
|
34
|
+
test 'text input does not be disabled when disabled option is false' do
|
35
35
|
with_input_for @user, :description, :text, disabled: false
|
36
36
|
assert_no_select 'textarea.text.disabled[disabled]'
|
37
37
|
end
|
38
38
|
|
39
|
-
test 'numeric input
|
39
|
+
test 'numeric input does not be disabled when disabled option is false' do
|
40
40
|
with_input_for @user, :age, :integer, disabled: false
|
41
41
|
assert_no_select 'input.integer.disabled[disabled]'
|
42
42
|
end
|
43
43
|
|
44
|
-
test 'date input
|
44
|
+
test 'date input does not be disabled when disabled option is false' do
|
45
45
|
with_input_for @user, :born_at, :date, disabled: false
|
46
46
|
assert_no_select 'select.date.disabled[disabled]'
|
47
47
|
end
|
48
48
|
|
49
|
-
test 'datetime input
|
49
|
+
test 'datetime input does not be disabled when disabled option is false' do
|
50
50
|
with_input_for @user, :created_at, :datetime, disabled: false
|
51
51
|
assert_no_select 'select.datetime.disabled[disabled]'
|
52
52
|
end
|
53
53
|
|
54
|
-
test 'string input
|
54
|
+
test 'string input does not be disabled when disabled option is not present' do
|
55
55
|
with_input_for @user, :name, :string
|
56
56
|
assert_no_select 'input.string.disabled[disabled]'
|
57
57
|
end
|
58
58
|
|
59
|
-
test 'text input
|
59
|
+
test 'text input does not be disabled when disabled option is not present' do
|
60
60
|
with_input_for @user, :description, :text
|
61
61
|
assert_no_select 'textarea.text.disabled[disabled]'
|
62
62
|
end
|
63
63
|
|
64
|
-
test 'numeric input
|
64
|
+
test 'numeric input does not be disabled when disabled option is not present' do
|
65
65
|
with_input_for @user, :age, :integer
|
66
66
|
assert_no_select 'input.integer.disabled[disabled]'
|
67
67
|
end
|
68
68
|
|
69
|
-
test 'date input
|
69
|
+
test 'date input does not be disabled when disabled option is not present' do
|
70
70
|
with_input_for @user, :born_at, :date
|
71
71
|
assert_no_select 'select.date.disabled[disabled]'
|
72
72
|
end
|
73
73
|
|
74
|
-
test 'datetime input
|
74
|
+
test 'datetime input does not be disabled when disabled option is not present' do
|
75
75
|
with_input_for @user, :created_at, :datetime
|
76
76
|
assert_no_select 'select.datetime.disabled[disabled]'
|
77
77
|
end
|
@@ -14,11 +14,13 @@ class DiscoveryTest < ActionView::TestCase
|
|
14
14
|
Object.send :remove_const, :CustomizedInput
|
15
15
|
Object.send :remove_const, :DeprecatedInput
|
16
16
|
Object.send :remove_const, :CollectionSelectInput
|
17
|
+
CustomInputs.send :remove_const, :PasswordInput
|
18
|
+
CustomInputs.send :remove_const, :NumericInput
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
|
-
test 'builder
|
23
|
+
test 'builder does not discover new inputs if cached' do
|
22
24
|
with_form_for @user, :name
|
23
25
|
assert_select 'form input#user_name.string'
|
24
26
|
|
@@ -28,14 +30,14 @@ class DiscoveryTest < ActionView::TestCase
|
|
28
30
|
end
|
29
31
|
end
|
30
32
|
|
31
|
-
test 'builder
|
33
|
+
test 'builder discovers new inputs' do
|
32
34
|
discovery do
|
33
35
|
with_form_for @user, :name, as: :customized
|
34
36
|
assert_select 'form section input#user_name.string'
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
|
-
test 'builder
|
40
|
+
test 'builder does not discover new inputs if discovery is off' do
|
39
41
|
with_form_for @user, :name
|
40
42
|
assert_select 'form input#user_name.string'
|
41
43
|
|
@@ -47,20 +49,57 @@ class DiscoveryTest < ActionView::TestCase
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
|
-
test 'builder
|
52
|
+
test 'builder discovers new inputs from mappings if not cached' do
|
51
53
|
discovery do
|
52
54
|
with_form_for @user, :name
|
53
55
|
assert_select 'form section input#user_name.string'
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
57
|
-
test 'builder
|
59
|
+
test 'builder discovers new inputs from internal fallbacks if not cached' do
|
58
60
|
discovery do
|
59
61
|
with_form_for @user, :age
|
60
62
|
assert_select 'form section input#user_age.numeric.integer'
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
66
|
+
test 'builder discovers new maped inputs from configured namespaces if not cached' do
|
67
|
+
discovery do
|
68
|
+
swap SimpleForm, custom_inputs_namespaces: ['CustomInputs'] do
|
69
|
+
with_form_for @user, :password
|
70
|
+
assert_select 'form input#user_password.password-custom-input'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
test 'builder discovers new maped inputs from configured namespaces before the ones from top level namespace' do
|
76
|
+
discovery do
|
77
|
+
swap SimpleForm, custom_inputs_namespaces: ['CustomInputs'] do
|
78
|
+
with_form_for @user, :age
|
79
|
+
assert_select 'form input#user_age.numeric-custom-input'
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
test 'builder discovers new custom inputs from configured namespace before the ones from top level namespace' do
|
85
|
+
discovery do
|
86
|
+
swap SimpleForm, custom_inputs_namespaces: ['CustomInputs'] do
|
87
|
+
with_form_for @user, :name, as: 'customized'
|
88
|
+
assert_select 'form input#user_name.customized-namespace-custom-input'
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
test 'raises error when configured namespace does not exists' do
|
94
|
+
discovery do
|
95
|
+
swap SimpleForm, custom_inputs_namespaces: ['InvalidNamespace'] do
|
96
|
+
assert_raise NameError do
|
97
|
+
with_form_for @user, :age
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
64
103
|
test 'new inputs can override the input_html_options' do
|
65
104
|
discovery do
|
66
105
|
with_form_for @user, :active, as: :select
|
@@ -2,12 +2,12 @@
|
|
2
2
|
require 'test_helper'
|
3
3
|
|
4
4
|
class FileInputTest < ActionView::TestCase
|
5
|
-
test 'input
|
5
|
+
test 'input generates a file field' do
|
6
6
|
with_input_for @user, :name, :file
|
7
7
|
assert_select 'input#user_name[type=file]'
|
8
8
|
end
|
9
9
|
|
10
|
-
test "input
|
10
|
+
test "input generates a file field that doesn't accept placeholder" do
|
11
11
|
store_translations(:en, simple_form: { placeholders: { user: { name: "text" } } }) do
|
12
12
|
with_input_for @user, :name, :file
|
13
13
|
assert_no_select 'input[placeholder]'
|
data/test/inputs/general_test.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'test_helper'
|
3
3
|
|
4
4
|
class InputTest < ActionView::TestCase
|
5
|
-
test 'input
|
5
|
+
test 'input generates css class based on default input type' do
|
6
6
|
with_input_for @user, :name, :string
|
7
7
|
assert_select 'input.string'
|
8
8
|
with_input_for @user, :description, :text
|
@@ -15,7 +15,7 @@ class InputTest < ActionView::TestCase
|
|
15
15
|
assert_select 'select.datetime'
|
16
16
|
end
|
17
17
|
|
18
|
-
test 'string input
|
18
|
+
test 'string input generates autofocus attribute when autofocus option is true' do
|
19
19
|
with_input_for @user, :name, :string, autofocus: true
|
20
20
|
assert_select 'input.string[autofocus]'
|
21
21
|
end
|
@@ -36,94 +36,94 @@ class InputTest < ActionView::TestCase
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
test 'text input
|
39
|
+
test 'text input generates autofocus attribute when autofocus option is true' do
|
40
40
|
with_input_for @user, :description, :text, autofocus: true
|
41
41
|
assert_select 'textarea.text[autofocus]'
|
42
42
|
end
|
43
43
|
|
44
|
-
test 'numeric input
|
44
|
+
test 'numeric input generates autofocus attribute when autofocus option is true' do
|
45
45
|
with_input_for @user, :age, :integer, autofocus: true
|
46
46
|
assert_select 'input.integer[autofocus]'
|
47
47
|
end
|
48
48
|
|
49
|
-
test 'date input
|
49
|
+
test 'date input generates autofocus attribute when autofocus option is true' do
|
50
50
|
with_input_for @user, :born_at, :date, autofocus: true
|
51
51
|
assert_select 'select.date[autofocus]'
|
52
52
|
end
|
53
53
|
|
54
|
-
test 'datetime input
|
54
|
+
test 'datetime input generates autofocus attribute when autofocus option is true' do
|
55
55
|
with_input_for @user, :created_at, :datetime, autofocus: true
|
56
56
|
assert_select 'select.datetime[autofocus]'
|
57
57
|
end
|
58
58
|
|
59
|
-
test 'string input
|
59
|
+
test 'string input generates autofocus attribute when autofocus option is false' do
|
60
60
|
with_input_for @user, :name, :string, autofocus: false
|
61
61
|
assert_no_select 'input.string[autofocus]'
|
62
62
|
end
|
63
63
|
|
64
|
-
test 'text input
|
64
|
+
test 'text input generates autofocus attribute when autofocus option is false' do
|
65
65
|
with_input_for @user, :description, :text, autofocus: false
|
66
66
|
assert_no_select 'textarea.text[autofocus]'
|
67
67
|
end
|
68
68
|
|
69
|
-
test 'numeric input
|
69
|
+
test 'numeric input generates autofocus attribute when autofocus option is false' do
|
70
70
|
with_input_for @user, :age, :integer, autofocus: false
|
71
71
|
assert_no_select 'input.integer[autofocus]'
|
72
72
|
end
|
73
73
|
|
74
|
-
test 'date input
|
74
|
+
test 'date input generates autofocus attribute when autofocus option is false' do
|
75
75
|
with_input_for @user, :born_at, :date, autofocus: false
|
76
76
|
assert_no_select 'select.date[autofocus]'
|
77
77
|
end
|
78
78
|
|
79
|
-
test 'datetime input
|
79
|
+
test 'datetime input generates autofocus attribute when autofocus option is false' do
|
80
80
|
with_input_for @user, :created_at, :datetime, autofocus: false
|
81
81
|
assert_no_select 'select.datetime[autofocus]'
|
82
82
|
end
|
83
83
|
|
84
|
-
test 'string input
|
84
|
+
test 'string input generates autofocus attribute when autofocus option is not present' do
|
85
85
|
with_input_for @user, :name, :string
|
86
86
|
assert_no_select 'input.string[autofocus]'
|
87
87
|
end
|
88
88
|
|
89
|
-
test 'text input
|
89
|
+
test 'text input generates autofocus attribute when autofocus option is not present' do
|
90
90
|
with_input_for @user, :description, :text
|
91
91
|
assert_no_select 'textarea.text[autofocus]'
|
92
92
|
end
|
93
93
|
|
94
|
-
test 'numeric input
|
94
|
+
test 'numeric input generates autofocus attribute when autofocus option is not present' do
|
95
95
|
with_input_for @user, :age, :integer
|
96
96
|
assert_no_select 'input.integer[autofocus]'
|
97
97
|
end
|
98
98
|
|
99
|
-
test 'date input
|
99
|
+
test 'date input generates autofocus attribute when autofocus option is not present' do
|
100
100
|
with_input_for @user, :born_at, :date
|
101
101
|
assert_no_select 'select.date[autofocus]'
|
102
102
|
end
|
103
103
|
|
104
|
-
test 'datetime input
|
104
|
+
test 'datetime input generates autofocus attribute when autofocus option is not present' do
|
105
105
|
with_input_for @user, :created_at, :datetime
|
106
106
|
assert_no_select 'select.datetime[autofocus]'
|
107
107
|
end
|
108
108
|
|
109
109
|
# With no object
|
110
|
-
test 'input
|
110
|
+
test 'input is generated properly when object is not present' do
|
111
111
|
with_input_for :project, :name, :string
|
112
112
|
assert_select 'input.string.required#project_name'
|
113
113
|
end
|
114
114
|
|
115
|
-
test 'input as radio
|
115
|
+
test 'input as radio is generated properly when object is not present ' do
|
116
116
|
with_input_for :project, :name, :radio_buttons
|
117
117
|
assert_select 'input.radio_buttons#project_name_true'
|
118
118
|
assert_select 'input.radio_buttons#project_name_false'
|
119
119
|
end
|
120
120
|
|
121
|
-
test 'input as select with collection
|
121
|
+
test 'input as select with collection is generated properly when object is not present' do
|
122
122
|
with_input_for :project, :name, :select, collection: ['Jose', 'Carlos']
|
123
123
|
assert_select 'select.select#project_name'
|
124
124
|
end
|
125
125
|
|
126
|
-
test 'input
|
126
|
+
test 'input does not generate empty css class' do
|
127
127
|
swap SimpleForm, generate_additional_classes_for: [:wrapper, :label] do
|
128
128
|
with_input_for :project, :name, :string
|
129
129
|
assert_no_select 'input#project_name[class]'
|