@@ -15,6 +15,7 @@ class CheckboxQuestionPresenterTest < ActiveSupport::TestCase
15
15
@renderer . stubs ( :option ) . with ( :option3 ) . returns ( { label : "Option 3" } )
16
16
17
17
@presenter = CheckboxQuestionPresenter . new ( @question , nil , nil , renderer : @renderer )
18
+ @presenter . stubs ( :response_for_current_question ) . returns ( nil )
18
19
end
19
20
20
21
test "#response_labels returns option labels for responses" do
@@ -29,19 +30,19 @@ class CheckboxQuestionPresenterTest < ActiveSupport::TestCase
29
30
assert_equal ( %w[ option1 option2 option3 ] , @presenter . checkboxes . map { |c | c [ :value ] } )
30
31
assert_equal ( [ "Option 1" , "Option 2" , "Option 3" ] , @presenter . checkboxes . map { |c | c [ :label ] } )
31
32
assert_equal ( [ nil , "Hint 2" , nil ] , @presenter . checkboxes . map { |c | c [ :hint ] } )
32
- assert_equal ( [ nil , nil , nil ] , @presenter . checkboxes . map { |c | c [ :checked ] } )
33
+ assert_equal ( [ false , false , false ] , @presenter . checkboxes . map { |c | c [ :checked ] } )
33
34
end
34
35
35
36
test "#checkboxes return array including an or divider for none options" do
36
37
@question . none_option
37
38
@renderer . stubs ( :option ) . with ( :none ) . returns ( { label : "None" } )
38
39
39
40
expected_value = [
40
- { label : "Option 1" , value : "option1" , hint : nil , checked : nil , exclusive : nil } ,
41
- { label : "Option 2" , value : "option2" , hint : "Hint 2" , checked : nil , exclusive : nil } ,
42
- { label : "Option 3" , value : "option3" , hint : nil , checked : nil , exclusive : nil } ,
41
+ { label : "Option 1" , value : "option1" , hint : nil , checked : false , exclusive : nil } ,
42
+ { label : "Option 2" , value : "option2" , hint : "Hint 2" , checked : false , exclusive : nil } ,
43
+ { label : "Option 3" , value : "option3" , hint : nil , checked : false , exclusive : nil } ,
43
44
:or ,
44
- { label : "None" , value : "none" , hint : nil , checked : nil , exclusive : true } ,
45
+ { label : "None" , value : "none" , hint : nil , checked : false , exclusive : true } ,
45
46
]
46
47
47
48
assert_equal expected_value , @presenter . checkboxes
@@ -53,5 +54,20 @@ class CheckboxQuestionPresenterTest < ActiveSupport::TestCase
53
54
54
55
assert_equal "caption-text" , @presenter . caption
55
56
end
57
+
58
+ context "#checked?" do
59
+ should "return true if values were previously selected" do
60
+ @presenter . stubs ( :response_for_current_question ) . returns ( %w[ option1 option2 ] )
61
+ assert @presenter . checked? ( "option2" )
62
+ end
63
+
64
+ should "return false if no values have been selected" do
65
+ @presenter . stubs ( :response_for_current_question ) . returns ( nil )
66
+
67
+ %w[ option1 option2 option3 none ] . each do |option |
68
+ assert_not @presenter . checked? ( option )
69
+ end
70
+ end
71
+ end
56
72
end
57
73
end
0 commit comments