Skip to content

Commit 48c9b5d

Browse files
Merge pull request #5546 from alphagov/add-next-steps-for-your-business-calc-tests
Add tests for "Next steps for you business" calculator
2 parents 258dfb6 + 08ddcec commit 48c9b5d

File tree

1 file changed

+272
-0
lines changed

1 file changed

+272
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
require_relative "../../test_helper"
2+
3+
module SmartAnswer::Calculators
4+
class NextStepsForYourBusinessCalculatorTest < ActiveSupport::TestCase
5+
setup do
6+
@calculator = NextStepsForYourBusinessCalculator.new
7+
@rules = NextStepsForYourBusinessCalculator::RULES
8+
end
9+
10+
context "RULES" do
11+
context "r1" do
12+
should "return true when registered_for_corp_tax is false" do
13+
@calculator.registered_for_corp_tax = false
14+
assert @rules[:r1].call(@calculator)
15+
end
16+
17+
should "return false when registered_for_corp_tax is true" do
18+
@calculator.registered_for_corp_tax = true
19+
assert_not @rules[:r1].call(@calculator)
20+
end
21+
end
22+
23+
(2..15).each do |index|
24+
context "r#{index}" do
25+
should "always return true" do
26+
assert @rules[:"r#{index}"].call(nil)
27+
end
28+
end
29+
end
30+
31+
context "r16" do
32+
should "return true when annual turnover is over 85k" do
33+
@calculator.annual_turnover_over_85k = "yes"
34+
assert @rules[:r16].call(@calculator)
35+
end
36+
37+
should "return false when annual turnover is not over 85k" do
38+
@calculator.annual_turnover_over_85k = "no"
39+
assert_not @rules[:r16].call(@calculator)
40+
end
41+
42+
should "return false when unsure if annual turnover is over 85k" do
43+
@calculator.annual_turnover_over_85k = "not_sure"
44+
assert_not @rules[:r16].call(@calculator)
45+
end
46+
end
47+
48+
context "r17" do
49+
should "return false when annual turnover is over 85k" do
50+
@calculator.annual_turnover_over_85k = "yes"
51+
assert_not @rules[:r17].call(@calculator)
52+
end
53+
54+
should "return false when annual turnover is not over 85k" do
55+
@calculator.annual_turnover_over_85k = "no"
56+
assert_not @rules[:r17].call(@calculator)
57+
end
58+
59+
should "return true when unsure if annual turnover is over 85k" do
60+
@calculator.annual_turnover_over_85k = "not_sure"
61+
assert @rules[:r17].call(@calculator)
62+
end
63+
end
64+
65+
context "r18" do
66+
should "return false when business is not an employer" do
67+
@calculator.employer = "no"
68+
assert_not @rules[:r18].call(@calculator)
69+
end
70+
71+
should "return true when business is an employer" do
72+
@calculator.employer = "yes"
73+
assert @rules[:r18].call(@calculator)
74+
end
75+
76+
should "return true when unsure if business is an employer" do
77+
@calculator.employer = "not_sure"
78+
assert @rules[:r18].call(@calculator)
79+
end
80+
81+
should "return true when business will be an employer" do
82+
@calculator.employer = "in_future"
83+
assert @rules[:r18].call(@calculator)
84+
end
85+
end
86+
87+
context "r19" do
88+
should "return false when business doesn't need financial support" do
89+
@calculator.needs_financial_support = "no"
90+
assert_not @rules[:r19].call(@calculator)
91+
end
92+
93+
should "return true when business needs financial support" do
94+
@calculator.needs_financial_support = "yes"
95+
assert @rules[:r19].call(@calculator)
96+
end
97+
end
98+
99+
context "r20" do
100+
should "return false when business doesn't need financial support" do
101+
@calculator.needs_financial_support = "no"
102+
assert_not @rules[:r20].call(@calculator)
103+
end
104+
105+
should "return true when business needs financial support" do
106+
@calculator.needs_financial_support = "yes"
107+
assert @rules[:r20].call(@calculator)
108+
end
109+
end
110+
111+
context "r21" do
112+
should "return false when business is not an employer" do
113+
@calculator.employer = "no"
114+
assert_not @rules[:r21].call(@calculator)
115+
end
116+
117+
should "return true when business is an employer" do
118+
@calculator.employer = "yes"
119+
assert @rules[:r21].call(@calculator)
120+
end
121+
122+
should "return true when unsure if business is an employer" do
123+
@calculator.employer = "not_sure"
124+
assert @rules[:r21].call(@calculator)
125+
end
126+
127+
should "return true when business will be an employer" do
128+
@calculator.employer = "in_future"
129+
assert @rules[:r21].call(@calculator)
130+
end
131+
end
132+
133+
context "r22" do
134+
should "return true when business has premise at home" do
135+
@calculator.business_premises = %w[home]
136+
assert @rules[:r22].call(@calculator)
137+
end
138+
139+
should "return false when business doesn't have premise at home" do
140+
@calculator.business_premises = %w[rented owned]
141+
assert_not @rules[:r22].call(@calculator)
142+
end
143+
end
144+
145+
context "r23" do
146+
should "return true when business has rented premise" do
147+
@calculator.business_premises = %w[rented]
148+
assert @rules[:r23].call(@calculator)
149+
end
150+
151+
should "return false when business doesn't have rented premise" do
152+
@calculator.business_premises = %w[home owned]
153+
assert_not @rules[:r23].call(@calculator)
154+
end
155+
end
156+
157+
context "r24" do
158+
should "return false when business only has premise at home" do
159+
@calculator.business_premises = %w[home]
160+
assert_not @rules[:r24].call(@calculator)
161+
end
162+
163+
should "return true when business has an owned premise" do
164+
@calculator.business_premises = %w[home owned]
165+
assert @rules[:r24].call(@calculator)
166+
end
167+
168+
should "return true when business has a rented premise" do
169+
@calculator.business_premises = %w[home rented]
170+
assert @rules[:r24].call(@calculator)
171+
end
172+
173+
should "return true when business has no premise" do
174+
@calculator.business_premises = %w[none]
175+
assert @rules[:r24].call(@calculator)
176+
end
177+
end
178+
179+
context "r25" do
180+
should "return false when business only has premise at home" do
181+
@calculator.business_premises = %w[home]
182+
assert_not @rules[:r25].call(@calculator)
183+
end
184+
185+
should "return true when business has an owned premise" do
186+
@calculator.business_premises = %w[home owned]
187+
assert @rules[:r25].call(@calculator)
188+
end
189+
190+
should "return true when business has a rented premise" do
191+
@calculator.business_premises = %w[home rented]
192+
assert @rules[:r25].call(@calculator)
193+
end
194+
195+
should "return true when business has no premise" do
196+
@calculator.business_premises = %w[none]
197+
assert @rules[:r25].call(@calculator)
198+
end
199+
end
200+
201+
context "r26" do
202+
should "return true when business is importing goods" do
203+
@calculator.activities = %w[import_goods]
204+
assert @rules[:r26].call(@calculator)
205+
end
206+
207+
should "return false when business is not importing goods" do
208+
@calculator.activities = %w[export_goods_or_services]
209+
assert_not @rules[:r26].call(@calculator)
210+
end
211+
end
212+
213+
context "r27" do
214+
should "return true when business is exporting goods or services" do
215+
@calculator.activities = %w[export_goods_or_services]
216+
assert @rules[:r27].call(@calculator)
217+
end
218+
219+
should "return false when business is not exporting goods or services" do
220+
@calculator.activities = %w[import_goods]
221+
assert_not @rules[:r27].call(@calculator)
222+
end
223+
end
224+
225+
context "r28" do
226+
should "return true when annual turnover is over 85k" do
227+
@calculator.annual_turnover_over_85k = "yes"
228+
assert @rules[:r28].call(@calculator)
229+
end
230+
231+
should "return false when annual turnover is not over 85k" do
232+
@calculator.annual_turnover_over_85k = "no"
233+
assert_not @rules[:r28].call(@calculator)
234+
end
235+
236+
should "return false when unsure if annual turnover is over 85k" do
237+
@calculator.annual_turnover_over_85k = "not_sure"
238+
assert_not @rules[:r28].call(@calculator)
239+
end
240+
end
241+
242+
context "r29" do
243+
should "return false when annual turnover is over 85k" do
244+
@calculator.annual_turnover_over_85k = "yes"
245+
assert_not @rules[:r29].call(@calculator)
246+
end
247+
248+
should "return true when annual turnover is not over 85k" do
249+
@calculator.annual_turnover_over_85k = "no"
250+
assert @rules[:r29].call(@calculator)
251+
end
252+
253+
should "return false when unsure if annual turnover is over 85k" do
254+
@calculator.annual_turnover_over_85k = "not_sure"
255+
assert_not @rules[:r29].call(@calculator)
256+
end
257+
end
258+
259+
context "r30" do
260+
should "return true when business is exporting goods or services" do
261+
@calculator.activities = %w[export_goods_or_services]
262+
assert @rules[:r30].call(@calculator)
263+
end
264+
265+
should "return false when business is not exporting goods or services" do
266+
@calculator.activities = %w[import_goods]
267+
assert_not @rules[:r30].call(@calculator)
268+
end
269+
end
270+
end
271+
end
272+
end

0 commit comments

Comments
 (0)