|
2 | 2 |
|
3 | 3 | require "test_helper"
|
4 | 4 |
|
5 |
| -# rubocop:disable Metrics/ClassLength |
6 | 5 | class ComponentMountTest < ActionDispatch::IntegrationTest
|
7 | 6 | module DummyRenderer
|
8 | 7 | def self.render(component_name, props, _prerender_options)
|
@@ -129,92 +128,5 @@ def self.react_rails_prerenderer
|
129 | 128 |
|
130 | 129 | assert_equal %(<div>rendered Foo with {"ok":true}</div>), rendered_component
|
131 | 130 | end
|
132 |
| - |
133 |
| - test "#react_component sets null props to undefined when null_to_undefined_props set to true" do |
134 |
| - app.config.react.null_to_undefined_props = true |
135 |
| - |
136 |
| - @helper.setup(DummyController) |
137 |
| - rendered_component = @helper.react_component("Foo", { bar: nil, content: 'bar":null,' }) |
138 |
| - |
139 |
| - assert_includes rendered_component, '"bar":undefined,"content":"bar\\":null,"' |
140 |
| - end |
141 |
| - |
142 |
| - test "#react_component passes null props as null when null_to_undefined_props set to false" do |
143 |
| - app.config.react.null_to_undefined_props = false |
144 |
| - |
145 |
| - @helper.setup(DummyController) |
146 |
| - rendered_component = @helper.react_component("Foo", { bar: nil, content: 'bar":null,' }) |
147 |
| - |
148 |
| - assert_includes rendered_component, ""bar":null,"content":"bar\\":null,"" |
149 |
| - end |
150 |
| - |
151 |
| - test "#props_to_json doesn't converts null values to undefined be default" do |
152 |
| - props = { name: nil } |
153 |
| - expected_json = '{"name":null}' |
154 |
| - component_mount = React::Rails::ComponentMount.new |
155 |
| - |
156 |
| - actual_json = component_mount.send(:props_to_json, props) |
157 |
| - |
158 |
| - assert_equal(expected_json, actual_json) |
159 |
| - end |
160 |
| - |
161 |
| - test "#props_to_json converts null values to undefined with null_to_undefined: true option" do |
162 |
| - props = { bar: nil, content: 'bar":null,' } |
163 |
| - expected_json = '{"bar":undefined,"content":"bar\\":null,"}' |
164 |
| - component_mount = React::Rails::ComponentMount.new |
165 |
| - |
166 |
| - actual_json = component_mount.send(:props_to_json, props, { null_to_undefined: true }) |
167 |
| - |
168 |
| - assert_equal(expected_json, actual_json) |
169 |
| - end |
170 |
| - |
171 |
| - test "#props_to_json converts null values in arrays to undefined with null_to_undefined: true option" do |
172 |
| - props = { items1: [nil], items2: [1, nil], items3: [nil, 1], items4: [1, nil, 2] } |
173 |
| - expected_json = '{"items1":[undefined],"items2":[1,undefined],"items3":[undefined,1],"items4":[1,undefined,2]}' |
174 |
| - component_mount = React::Rails::ComponentMount.new |
175 |
| - |
176 |
| - actual_json = component_mount.send(:props_to_json, props, { null_to_undefined: true }) |
177 |
| - |
178 |
| - assert_equal(expected_json, actual_json) |
179 |
| - end |
180 |
| - |
181 |
| - test "#props_to_json doesnt converts null-like values in arrays to undefined with null_to_undefined: true option" do |
182 |
| - props = { |
183 |
| - items1: "[null]", |
184 |
| - items2: "[1,null]", |
185 |
| - items3: "[null,1]", |
186 |
| - items4: "[1,null,2]", |
187 |
| - items5: '["a",null]', |
188 |
| - items6: '[null,"b"]', |
189 |
| - items7: '["a",null,"b"]', |
190 |
| - items8: '["a",nullx,"b"]' |
191 |
| - } |
192 |
| - expected_json = '{"items1":"[null]","items2":"[1,null]","items3":"[null,1]","items4":"[1,null,2]",' \ |
193 |
| - '"items5":"[\"a\",null]","items6":"[null,\"b\"]","items7":"[\"a\",null,\"b\"]"' \ |
194 |
| - ',"items8":"[\"a\",nullx,\"b\"]"}' |
195 |
| - component_mount = React::Rails::ComponentMount.new |
196 |
| - |
197 |
| - actual_json = component_mount.send(:props_to_json, props, { null_to_undefined: true }) |
198 |
| - |
199 |
| - assert_equal(expected_json, actual_json) |
200 |
| - end |
201 |
| - |
202 |
| - test "#props_to_json doesnt converts null values in nested arrays to undefined with null_to_undefined: true" do |
203 |
| - props = { |
204 |
| - items1: nil, |
205 |
| - items2: [1, nil, 2], |
206 |
| - items3: nil, |
207 |
| - items4: "[1, null, 2]", |
208 |
| - items5: nil |
209 |
| - } |
210 |
| - expected_json = '{"items1":undefined,"items2":[1,undefined,2],"items3":undefined,"items4":"[1, null, 2]"' \ |
211 |
| - ',"items5":undefined}' |
212 |
| - component_mount = React::Rails::ComponentMount.new |
213 |
| - |
214 |
| - actual_json = component_mount.send(:props_to_json, props, { null_to_undefined: true }) |
215 |
| - |
216 |
| - assert_equal(expected_json, actual_json) |
217 |
| - end |
218 | 131 | end
|
219 | 132 | end
|
220 |
| -# rubocop:enable Metrics/ClassLength |
0 commit comments