@@ -998,84 +998,120 @@ def test_set_specific_max_scores!
998
998
end
999
999
end
1000
1000
1001
+ form = JSF ::Forms ::FormBuilder . build do
1002
+ add_response_set ( :response_set_1 , example ( 'response_set' ) ) . tap do |response_set |
1003
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1004
+ r [ :const ] = 'score_0'
1005
+ r [ :score ] = 0
1006
+ r . set_translation ( 'score 0' , 'es' )
1007
+ end
1008
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1009
+ r [ :const ] = 'score_1'
1010
+ r [ :score ] = 1
1011
+ r . set_translation ( 'score 1' , 'es' )
1012
+ end
1013
+ end
1014
+
1015
+ append_property ( :select_1 , example ( 'select' ) ) do |f , key |
1016
+ f . response_set_id = :response_set_1
1017
+ append_conditional_property ( :markdown_1_1 , example ( 'markdown' ) , dependent_on : key , type : :enum , value : [ 'score_0' ] )
1018
+ end
1019
+ end
1020
+
1021
+ [
1022
+ {
1023
+ doc : { 'select_1' => nil } ,
1024
+ hash : { "select_1" => 1 } ,
1025
+ total : 1 ,
1026
+ } ,
1027
+ {
1028
+ doc : { 'select_1' => 'score_1' } ,
1029
+ hash : { "select_1" => 1 } ,
1030
+ total : 1 ,
1031
+ } ,
1032
+ {
1033
+ doc : { 'select_1' => 'score_0' } ,
1034
+ hash : { "select_1" => 1 } ,
1035
+ total : 1 ,
1036
+ }
1037
+ ] . each do |obj |
1038
+ assert_equal obj [ :total ] , form . set_specific_max_scores! ( obj [ :doc ] )
1039
+ assert_equal obj [ :doc ] [ 'meta' ] [ 'specific_max_score_hash' ] , obj [ :hash ]
1040
+ end
1041
+
1001
1042
### SCORABLE FIELDS ###
1002
1043
1003
- scored_form_proc = Proc . new do
1004
- JSF ::Forms ::FormBuilder . build do
1044
+ form = JSF ::Forms ::FormBuilder . build do
1005
1045
1006
- add_response_set ( :response_set_1 , example ( 'response_set' ) ) . tap do |response_set |
1007
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1008
- r [ :const ] = 'nil_score'
1009
- r [ :score ] = nil
1010
- end
1011
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1012
- r [ :const ] = 'score_3'
1013
- r [ :score ] = 3
1014
- end
1015
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1016
- r [ :const ] = 'score_6'
1017
- r [ :score ] = 6
1018
- end
1046
+ add_response_set ( :response_set_1 , example ( 'response_set' ) ) . tap do |response_set |
1047
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1048
+ r [ :const ] = 'nil_score'
1049
+ r [ :score ] = nil
1019
1050
end
1020
-
1021
- add_response_set ( :response_set_2 , example ( 'response_set' ) ) . tap do |response_set |
1022
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1023
- r [ :const ] = 'nil_score'
1024
- r [ :score ] = nil
1025
- end
1026
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1027
- r [ :const ] = 'score_1'
1028
- r [ :score ] = 1
1029
- end
1030
- response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1031
- r [ :const ] = 'score_2'
1032
- r [ :score ] = 2
1033
- end
1051
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1052
+ r [ :const ] = 'score_3'
1053
+ r [ :score ] = 3
1054
+ end
1055
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1056
+ r [ :const ] = 'score_6'
1057
+ r [ :score ] = 6
1034
1058
end
1059
+ end
1060
+
1061
+ add_response_set ( :response_set_2 , example ( 'response_set' ) ) . tap do |response_set |
1062
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1063
+ r [ :const ] = 'nil_score'
1064
+ r [ :score ] = nil
1065
+ end
1066
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1067
+ r [ :const ] = 'score_1'
1068
+ r [ :score ] = 1
1069
+ end
1070
+ response_set . add_response ( example ( 'response' , :is_inspection ) ) . tap do |r |
1071
+ r [ :const ] = 'score_2'
1072
+ r [ :score ] = 2
1073
+ end
1074
+ end
1075
+
1076
+ append_property ( :markdown_1 , example ( 'markdown' ) )
1077
+ append_property ( :switch_1 , example ( 'switch' ) )
1078
+
1079
+ append_property ( :select_1 , example ( 'select' ) ) do |f , key |
1080
+ f . response_set_id = :response_set_1
1081
+
1082
+ append_conditional_property ( :select_1_1 , example ( 'select' ) , dependent_on : key , type : :enum , value : [ 'nil_score' , 'score_3' ] ) do |f , key , subform |
1083
+ f . response_set_id = :response_set_2
1035
1084
1036
- append_property ( :markdown_1 , example ( 'markdown' ) )
1037
- append_property ( :switch_1 , example ( 'switch' ) )
1085
+ subform . append_conditional_property ( :select_1_1_1 , example ( 'select' ) , dependent_on : key , type : :const , value : 'nil_score' ) do |f , key , subform |
1086
+ f . response_set_id = :response_set_1
1087
+ end
1038
1088
1039
- append_property ( :select_1 , example ( 'select' ) ) do |f , key |
1040
- f . response_set_id = :response_set_1
1041
-
1042
- append_conditional_property ( :select_1_1 , example ( 'select' ) , dependent_on : key , type : :enum , value : [ 'nil_score' , 'score_3' ] ) do |f , key , subform |
1089
+ subform . append_conditional_property ( :checkbox_1_1_2 , example ( 'checkbox' ) , dependent_on : key , type : :enum , value : [ 'nil_score' , 'score_1' ] ) do |f , key , subform |
1043
1090
f . response_set_id = :response_set_2
1044
-
1045
- subform . append_conditional_property ( :select_1_1_1 , example ( 'select' ) , dependent_on : key , type : :const , value : 'nil_score' ) do |f , key , subform |
1046
- f . response_set_id = :response_set_1
1047
- end
1048
-
1049
- subform . append_conditional_property ( :checkbox_1_1_2 , example ( 'checkbox' ) , dependent_on : key , type : :enum , value : [ 'nil_score' , 'score_1' ] ) do |f , key , subform |
1050
- f . response_set_id = :response_set_2
1051
- end
1052
1091
end
1053
-
1054
1092
end
1055
1093
1056
- append_property ( :section_1 , example ( 'section' ) ) do |f , _ |
1057
- f . form . instance_eval do
1058
- append_property ( :slider_sec_1 , example ( 'slider' ) )
1059
- append_property ( :number_input_sec_2 , example ( 'number_input' ) ) do |f , key |
1060
- append_conditional_property ( :select_sec_1_1 , example ( 'select' ) , dependent_on : key , type : :const , value : 1 ) do |f , key , subform |
1061
- f . response_set_id = :response_set_2
1062
-
1063
- subform . append_conditional_property ( :switch_1_1_1 , example ( 'switch' ) , dependent_on : key , type : :const , value : 'score_2' )
1064
- subform . append_conditional_property ( :section_1_1_1 , example ( 'section' ) , dependent_on : key , type : :const , value : 'score_1' ) do |f , _ |
1065
- f . form . instance_eval do
1066
- append_property ( :switch_1_1_1_1 , example ( 'switch' ) )
1067
- end
1094
+ end
1095
+
1096
+ append_property ( :section_1 , example ( 'section' ) ) do |f , _ |
1097
+ f . form . instance_eval do
1098
+ append_property ( :slider_sec_1 , example ( 'slider' ) )
1099
+ append_property ( :number_input_sec_2 , example ( 'number_input' ) ) do |f , key |
1100
+ append_conditional_property ( :select_sec_1_1 , example ( 'select' ) , dependent_on : key , type : :const , value : 1 ) do |f , key , subform |
1101
+ f . response_set_id = :response_set_2
1102
+
1103
+ subform . append_conditional_property ( :switch_1_1_1 , example ( 'switch' ) , dependent_on : key , type : :const , value : 'score_2' )
1104
+ subform . append_conditional_property ( :section_1_1_1 , example ( 'section' ) , dependent_on : key , type : :const , value : 'score_1' ) do |f , _ |
1105
+ f . form . instance_eval do
1106
+ append_property ( :switch_1_1_1_1 , example ( 'switch' ) )
1068
1107
end
1069
1108
end
1070
1109
end
1071
1110
end
1072
1111
end
1073
-
1074
1112
end
1075
- end
1076
1113
1077
- # test multiple documents for a form with no hidden fields
1078
- form = scored_form_proc . call
1114
+ end
1079
1115
1080
1116
values = [
1081
1117
{
@@ -1150,8 +1186,8 @@ def test_set_specific_max_scores!
1150
1186
} ,
1151
1187
{
1152
1188
doc : { 'select_1' => 'nil_score' , 'select_1_1' => 'nil_score' , 'section_1' => [ { 'number_input_sec_2' => 1 } , { 'number_input_sec_2' => 1 , 'select_sec_1_1' => 'score_1' } ] } ,
1153
- hash : { "switch_1" => 1 , "select_1" => nil , "section_1" => [ { "slider_sec_1" => 10 , "select_sec_1_1" => 2 } , { "slider_sec_1" => 10 , "select_sec_1_1" => 1 , "section_1_1_1" => [ ] } ] , "select_1_1" => nil , "select_1_1_1" => 6 , "checkbox_1_1_2" => 3 } ,
1154
- total : 33 .0,
1189
+ hash : { "switch_1" => 1 , "select_1" => nil , "section_1" => [ { "slider_sec_1" => 10 , "select_sec_1_1" => 2 } , { "slider_sec_1" => 10 , "select_sec_1_1" => 2 , "section_1_1_1" => [ ] } ] , "select_1_1" => nil , "select_1_1_1" => 6 , "checkbox_1_1_2" => 3 } ,
1190
+ total : 34 .0,
1155
1191
} ,
1156
1192
{
1157
1193
doc : { 'select_1' => 'nil_score' , 'select_1_1' => 'nil_score' , 'section_1' => [ { 'number_input_sec_2' => 1 } , { 'number_input_sec_2' => 1 , 'select_sec_1_1' => 'score_2' } ] } ,
0 commit comments