Skip to content

Commit 90258e2

Browse files
committed
Merge pull request #2032 from alphagov/avoid-rescuing-argument-error-in-next-node-blocks
Avoid rescuing argument error in next node blocks
2 parents 6004723 + 01d4ffd commit 90258e2

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

lib/smart_answer/flow.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def process(responses)
125125
begin
126126
state = node(state.current_node).transition(state, response)
127127
node(state.current_node).evaluate_precalculations(state)
128-
rescue ArgumentError, InvalidResponse => e
128+
rescue InvalidResponse => e
129129
state.dup.tap do |new_state|
130130
new_state.error = e.message
131131
new_state.freeze

lib/smart_answer/question/value.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ def parse_input(raw_input)
1010
if Integer == @parse
1111
begin
1212
Integer(raw_input)
13-
rescue TypeError
13+
rescue TypeError, ArgumentError
1414
raise InvalidResponse
1515
end
1616
elsif :to_i == @parse
1717
raw_input.to_i
1818
elsif Float == @parse
1919
begin
2020
Float(raw_input)
21-
rescue TypeError
21+
rescue TypeError, ArgumentError
2222
raise InvalidResponse
2323
end
2424
elsif :to_f == @parse

test/unit/value_question_test.rb

+8-8
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ class ValueQuestionTest < ActiveSupport::TestCase
3131
assert_equal 123, new_state.myval
3232
end
3333

34-
should "raise ArgumentError for non-integer value" do
35-
assert_raises(ArgumentError) { @q.transition(@initial_state, "1.5") }
34+
should "raise InvalidResponse for non-integer value" do
35+
assert_raises(InvalidResponse) { @q.transition(@initial_state, "1.5") }
3636
end
3737

38-
should "raise ArgumentError for blank value" do
39-
assert_raises(ArgumentError) { @q.transition(@initial_state, "") }
38+
should "raise InvalidResponse for blank value" do
39+
assert_raises(InvalidResponse) { @q.transition(@initial_state, "") }
4040
end
4141

4242
should "raise InvalidResponse for nil value" do
@@ -81,12 +81,12 @@ class ValueQuestionTest < ActiveSupport::TestCase
8181
assert_equal 1.23, new_state.myval
8282
end
8383

84-
should "raise ArgumentError for non-float value" do
85-
assert_raises(ArgumentError) { @q.transition(@initial_state, "not-a-float") }
84+
should "raise InvalidResponse for non-float value" do
85+
assert_raises(InvalidResponse) { @q.transition(@initial_state, "not-a-float") }
8686
end
8787

88-
should "raise ArgumentError for blank value" do
89-
assert_raises(ArgumentError) { @q.transition(@initial_state, "") }
88+
should "raise InvalidResponse for blank value" do
89+
assert_raises(InvalidResponse) { @q.transition(@initial_state, "") }
9090
end
9191

9292
should "raise InvalidResponse for nil value" do

0 commit comments

Comments
 (0)