@@ -8,22 +8,22 @@ def setup
8
8
end
9
9
10
10
test "arrayed_text_field with default values" do
11
- expected = '<div class="form-group"><label class="control-label col-2" for="thing_list">List</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[list][]" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-11"><input type="text" name="thing[list][]" id="thing_list_" value="One" class="form-control" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-11"><input type="text" name="thing[list][]" id="thing_list_" value="Two" class="form-control" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-default add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
11
+ expected = '<div class="form-group"><label class="control-label col-2" for="thing_list">List</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[list][]" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-11"><input type="text" name="thing[list][]" id="thing_list_" value="One" class="form-control" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-11"><input type="text" name="thing[list][]" id="thing_list_" value="Two" class="form-control" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-light add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
12
12
assert_equal expected , @builder . arrayed_text_field ( :list )
13
13
end
14
14
15
15
test "arrayed_url_field with default values" do
16
- expected = '<div class="form-group"><label class="control-label col-2" for="thing_urls">Urls</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="url" id="" class="form-control" data-name="thing[urls][]" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-11"><input type="url" name="thing[urls][]" id="thing_urls_" value="www.example1.com" class="form-control" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-11"><input type="url" name="thing[urls][]" id="thing_urls_" value="www.example2.com" class="form-control" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-default add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
16
+ expected = '<div class="form-group"><label class="control-label col-2" for="thing_urls">Urls</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="url" id="" class="form-control" data-name="thing[urls][]" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-11"><input type="url" name="thing[urls][]" id="thing_urls_" value="www.example1.com" class="form-control" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-11"><input type="url" name="thing[urls][]" id="thing_urls_" value="www.example2.com" class="form-control" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-light add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
17
17
assert_equal expected , @builder . arrayed_url_field ( :urls )
18
18
end
19
19
20
20
test "ArrayedField, with nonexistent attribute, assumes the value is an empty array" do
21
- expected = '<div class="form-group"><label class="control-label col-2" for="thing_nonexistent">Nonexistent</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[nonexistent][]" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"></div><div class="row mt-1"><div class="col-12"><a class="btn btn-default add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
21
+ expected = '<div class="form-group"><label class="control-label col-2" for="thing_nonexistent">Nonexistent</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[nonexistent][]" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"></div><div class="row mt-1"><div class="col-12"><a class="btn btn-light add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
22
22
assert_equal expected , @builder . arrayed_text_field ( :nonexistent )
23
23
end
24
24
25
25
test "ArrayedField, with non-array attribute, assumes the value is an empty array" do
26
- expected = '<div class="form-group"><label class="control-label col-2 required" for="thing_name">Name</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[name][]" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"></div><div class="row mt-1"><div class="col-12"><a class="btn btn-default add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
26
+ expected = '<div class="form-group"><label class="control-label col-2 required" for="thing_name">Name</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-11"><input type="text" id="" class="form-control" data-name="thing[name][]" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"></div><div class="row mt-1"><div class="col-12"><a class="btn btn-light add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
27
27
assert_equal expected , @builder . arrayed_text_field ( :name )
28
28
end
29
29
@@ -33,19 +33,19 @@ def setup
33
33
end
34
34
35
35
test "arrayed_json_field with default values" do
36
- expected = '<div class="form-group"><label class="control-label col-2" for="thing_variables">Variables</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-2"><input type="text" id="" class="form-control" placeholder="name" data-name="thing[variables][][name]" /></div><div class="col-2"><input type="text" id="" class="form-control" placeholder="value" data-name="thing[variables][][value]" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-2"><input type="text" name="thing[variables][][name]" id="thing_variables__name" class="form-control" placeholder="name" /></div><div class="col-2"><input type="text" name="thing[variables][][value]" id="thing_variables__value" class="form-control" placeholder="value" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-2"><input type="text" name="thing[variables][][name]" id="thing_variables__name" class="form-control" placeholder="name" /></div><div class="col-2"><input type="text" name="thing[variables][][value]" id="thing_variables__value" class="form-control" placeholder="value" /></div><div class="col-1"><a class="btn btn-default remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-default add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
36
+ expected = '<div class="form-group"><label class="control-label col-2" for="thing_variables">Variables</label><div class="col-10"><div data-arrayed-field="true"><div class="blueprint-for-arrayed-field" style="display:none;"><div class="row mt-1"><div class="col-2"><input type="text" id="" class="form-control" placeholder="name" data-name="thing[variables][][name]" /></div><div class="col-2"><input type="text" id="" class="form-control" placeholder="value" data-name="thing[variables][][value]" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="arrayed-field-rows"><div class="row mt-1"><div class="col-2"><input type="text" name="thing[variables][][name]" id="thing_variables__name" class="form-control" placeholder="name" /></div><div class="col-2"><input type="text" name="thing[variables][][value]" id="thing_variables__value" class="form-control" placeholder="value" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div><div class="row mt-1"><div class="col-2"><input type="text" name="thing[variables][][name]" id="thing_variables__name" class="form-control" placeholder="name" /></div><div class="col-2"><input type="text" name="thing[variables][][value]" id="thing_variables__value" class="form-control" placeholder="value" /></div><div class="col-1"><a class="btn btn-light remove-arrayed-field-row" href="javascript:void(0);">×</a></div></div></div><div class="row mt-1"><div class="col-12"><a class="btn btn-light add-arrayed-field-row" href="javascript:void(0);">+</a></div></div></div></div></div>'
37
37
assert_equal expected , @builder . arrayed_json_field ( :variables , %i[ name value ] )
38
38
end
39
39
40
40
test "arrayed_json_field with custom input types" do
41
41
expected = <<-HTML . chomp
42
42
< div class ="form-group "> < label class ="control-label col-2 " for ="thing_variables "> Variables</ label > < div class ="col-10 "> < div data-arrayed-field ="true "> < div class ="blueprint-for-arrayed-field " style ="display:none; "> < div class ="row mt-1 "> < div class ="col-2 "> < select id ="" class ="form-control " data-name ="thing[variables][][name] "> < option value ="var1 "> Variable One</ option >
43
43
< option value ="var2 "> Variable Two</ option >
44
- < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " id ="" class ="form-control " placeholder ="value " data-name ="thing[variables][][value] " /> </ div > < div class ="col-1 "> < a class ="btn btn-default remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > </ div > < div class ="arrayed-field-rows "> < div class ="row mt-1 "> < div class ="col-2 "> < select name ="thing[variables][][name] " id ="thing_variables__name " class ="form-control "> < option value ="var1 "> Variable One</ option >
44
+ < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " id ="" class ="form-control " placeholder ="value " data-name ="thing[variables][][value] " /> </ div > < div class ="col-1 "> < a class ="btn btn-light remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > </ div > < div class ="arrayed-field-rows "> < div class ="row mt-1 "> < div class ="col-2 "> < select name ="thing[variables][][name] " id ="thing_variables__name " class ="form-control "> < option value ="var1 "> Variable One</ option >
45
45
< option value ="var2 "> Variable Two</ option >
46
- < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " name ="thing[variables][][value] " id ="thing_variables__value " class ="form-control " placeholder ="value " /> </ div > < div class ="col-1 "> < a class ="btn btn-default remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > < div class ="row mt-1 "> < div class ="col-2 "> < select name ="thing[variables][][name] " id ="thing_variables__name " class ="form-control "> < option value ="var1 "> Variable One</ option >
46
+ < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " name ="thing[variables][][value] " id ="thing_variables__value " class ="form-control " placeholder ="value " /> </ div > < div class ="col-1 "> < a class ="btn btn-light remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > < div class ="row mt-1 "> < div class ="col-2 "> < select name ="thing[variables][][name] " id ="thing_variables__name " class ="form-control "> < option value ="var1 "> Variable One</ option >
47
47
< option value ="var2 "> Variable Two</ option >
48
- < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " name ="thing[variables][][value] " id ="thing_variables__value " class ="form-control " placeholder ="value " /> </ div > < div class ="col-1 "> < a class ="btn btn-default remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > </ div > < div class ="row mt-1 "> < div class ="col-12 "> < a class ="btn btn-default add-arrayed-field-row " href ="javascript:void(0); "> +</ a > </ div > </ div > </ div > </ div > </ div >
48
+ < option value ="var3 "> Variable Three</ option > </ select > </ div > < div class ="col-2 "> < input type ="text " name ="thing[variables][][value] " id ="thing_variables__value " class ="form-control " placeholder ="value " /> </ div > < div class ="col-1 "> < a class ="btn btn-light remove-arrayed-field-row " href ="javascript:void(0); "> ×</ a > </ div > </ div > </ div > < div class ="row mt-1 "> < div class ="col-12 "> < a class ="btn btn-light add-arrayed-field-row " href ="javascript:void(0); "> +</ a > </ div > </ div > </ div > </ div > </ div >
49
49
HTML
50
50
assert_equal expected , @builder . arrayed_json_field ( :variables , [ { name : { type : :select , options : options_for_variables } } , :value ] )
51
51
end
0 commit comments