Skip to content

Commit 85c5bd3

Browse files
committed
Fix merge main mistake.
1 parent 161ac44 commit 85c5bd3

1 file changed

Lines changed: 75 additions & 14 deletions

File tree

spec/services/reports/adult_incontinence_report_service_spec.rb

Lines changed: 75 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
it 'should report zero values' do
1111
expect(report.report[:name]).to eq("Adult Incontinence")
1212
expect(report.report[:entries]).to match(hash_including({
13+
"Adult incontinence supplies distributed" => "0",
14+
"Adults Assisted Per Month" => 0,
1315
"% adult incontinence bought" => "0%",
1416
"% adult incontinence supplies donated" => "0%",
15-
"Adult incontinence supplies distributed" => "0",
1617
"Adult incontinence supplies per adult per month" => 0,
1718
"Money spent purchasing adult incontinence supplies" => "$0.00"
1819
}))
@@ -39,15 +40,48 @@
3940
adult_incontinence_item = organization.items.adult_incontinence.first
4041
non_adult_incontinence_item = organization.items.where.not(id: organization.items.adult_incontinence).first
4142

43+
# kits
44+
adult_incontinence_kit_item_1 = create(:item, name: "Adult Briefs (Medium)", reporting_category: "adult_incontinence", distribution_quantity: 1)
45+
adult_incontinence_kit_item_2 = create(:item, name: "Adult Briefs (Large)", reporting_category: "adult_incontinence", distribution_quantity: 1)
46+
adult_incontinence_kit_item_3 = create(:item, name: "Adult Briefs (Small)", reporting_category: "adult_incontinence", distribution_quantity: 1)
47+
non_adult_incontinence_kit_item = create(:item, name: "Baby Wipes", reporting_category: "other")
48+
49+
donation_1 = create(:donation)
50+
donation_2 = create(:donation)
51+
donation_3 = create(:donation)
52+
donation_4 = create(:donation)
53+
54+
line_item_1 = LineItem.create!(item: adult_incontinence_kit_item_1, itemizable_id: donation_1.id, itemizable_type: "Donation", quantity: 5)
55+
line_item_2 = LineItem.create!(item: adult_incontinence_kit_item_2, itemizable_id: donation_2.id, itemizable_type: "Donation", quantity: 5)
56+
line_item_4 = LineItem.create!(item: adult_incontinence_kit_item_3, itemizable_id: donation_4.id, itemizable_type: "Donation", quantity: 5)
57+
line_item_3 = LineItem.create!(item: non_adult_incontinence_kit_item, itemizable_id: donation_3.id, itemizable_type: "Donation", quantity: 5)
58+
59+
@kit_1 = create(:kit, line_items: [line_item_1], organization: organization, item: adult_incontinence_kit_item_1)
60+
@kit_2 = create(:kit, line_items: [line_item_2], organization: organization, item: adult_incontinence_kit_item_2)
61+
@kit_4 = create(:kit, line_items: [line_item_4], organization: organization, item: adult_incontinence_kit_item_3)
62+
@kit_3 = create(:kit, line_items: [line_item_3], organization: organization, item: non_adult_incontinence_kit_item)
63+
64+
# kit distributions
65+
kit_distribution_1 = create(:distribution, organization: organization, issued_at: within_time)
66+
kit_distribution_2 = create(:distribution, organization: organization, issued_at: within_time)
67+
kit_distribution_4 = create(:distribution, organization: organization, issued_at: within_time)
68+
# wipes distribution
69+
kit_distribution_3 = create(:distribution, organization: organization, issued_at: within_time)
70+
71+
create(:line_item, :distribution, quantity: 100, item: @kit_1.line_items.first.item, itemizable: kit_distribution_1)
72+
create(:line_item, :distribution, quantity: 100, item: @kit_2.line_items.first.item, itemizable: kit_distribution_2)
73+
create(:line_item, :distribution, quantity: 100, item: @kit_4.line_items.first.item, itemizable: kit_distribution_4)
74+
# wipes kit no ai items
75+
create(:line_item, :distribution, quantity: 100, item: @kit_3.line_items.first.item, itemizable: kit_distribution_3)
4276
# We will create data both within and outside our date range, and both adult_incontinence and non adult_incontinence.
4377
# Spec will ensure that only the required data is included.
4478

4579
# Distributions
4680
distributions = create_list(:distribution, 2, issued_at: within_time, organization: organization)
4781
outside_distributions = create_list(:distribution, 2, issued_at: outside_time, organization: organization)
4882
(distributions + outside_distributions).each do |dist|
49-
create_list(:line_item, 5, :distribution, quantity: 200, item: adult_incontinence_item, itemizable: dist)
50-
create_list(:line_item, 5, :distribution, quantity: 30, item: non_adult_incontinence_item, itemizable: dist)
83+
create_list(:line_item, 5, :distribution, quantity: 5000, item: adult_incontinence_item, itemizable: dist)
84+
create_list(:line_item, 5, :distribution, quantity: 500, item: non_adult_incontinence_item, itemizable: dist)
5185
end
5286

5387
# Donations
@@ -94,15 +128,35 @@
94128
end
95129
end
96130

131+
it "returns an accurate number of adult served per month" do
132+
expect(report.adults_served_per_month.round).to eq(108)
133+
end
134+
135+
it "should return the number of loose adult incontinence supplies distributed" do
136+
expect(report.distributed_adult_incontinence_items_from_kits).to eq(1500.0)
137+
end
138+
it "should return the number of distributed adult incontinence items from kits" do
139+
expect(report.distributed_adult_incontinence_items_from_kits).to eq(1500.0)
140+
end
141+
142+
it "should return the number of distributed kits only containing adult incontinence items per month" do
143+
expect(report.total_distributed_kits_containing_adult_incontinence_items_per_month).to eq(25.0)
144+
end
145+
146+
it "should return the kits distributed within a specific year" do
147+
result = report.distributed_kits_for_year
148+
expect(result.to_a).to match_array([@kit_1.id, @kit_2.id, @kit_3.id, @kit_4.id])
149+
end
150+
97151
it 'should report normal values' do
98152
organization.items.adult_incontinence.first.update!(distribution_quantity: 20)
99-
100153
expect(report.report[:name]).to eq("Adult Incontinence")
101154
expect(report.report[:entries]).to match(hash_including({
102155
"% adult incontinence bought" => "60%",
103156
"% adult incontinence supplies donated" => "40%",
104-
"Adult incontinence supplies distributed" => "2,000",
105-
"Adult incontinence supplies per adult per month" => 20,
157+
"Adults Assisted Per Month" => 233.33,
158+
"Adult incontinence supplies distributed" => "51,800",
159+
"Adult incontinence supplies per adult per month" => 18.5,
106160
"Money spent purchasing adult incontinence supplies" => "$30.00"
107161
}))
108162
expect(report.report[:entries]['Adult incontinence supplies'].split(', '))
@@ -115,18 +169,22 @@
115169
"Adult Briefs (XXS)",
116170
"Adult Incontinence Pads",
117171
"Underpads (Pack)",
172+
"Adult Cloth Diapers (Large/XL/XXL)",
173+
"Adult Cloth Diapers (Small/Medium)",
118174
"Liners (Incontinence)",
119-
"Adult Cloth Diapers (Large/XL/XXL)",
120-
"Adult Cloth Diapers (Small/Medium)")
175+
"Adult Briefs (Small)",
176+
"Adult Briefs (Large)",
177+
"Adult Briefs (Medium)")
121178
end
122179

123180
it 'should handle null distribution quantity' do
124181
expect(report.report[:name]).to eq("Adult Incontinence")
125182
expect(report.report[:entries]).to match(hash_including({
126183
"% adult incontinence bought" => "60%",
127184
"% adult incontinence supplies donated" => "40%",
128-
"Adult incontinence supplies distributed" => "2,000",
129-
"Adult incontinence supplies per adult per month" => 50,
185+
"Adult incontinence supplies distributed" => "51,800",
186+
"Adults Assisted Per Month" => 108.33,
187+
"Adult incontinence supplies per adult per month" => 39.85,
130188
"Money spent purchasing adult incontinence supplies" => "$30.00"
131189
}))
132190
expect(report.report[:entries]['Adult incontinence supplies'].split(', '))
@@ -139,10 +197,13 @@
139197
"Adult Briefs (XXS)",
140198
"Adult Incontinence Pads",
141199
"Underpads (Pack)",
142-
"Liners (Incontinence)",
143-
"Adult Cloth Diapers (Large/XL/XXL)",
144-
"Adult Cloth Diapers (Small/Medium)")
200+
"Adult Cloth Diapers (Large/XL/XXL)",
201+
"Adult Cloth Diapers (Small/Medium)",
202+
"Liners (Incontinence)",
203+
"Adult Briefs (Small)",
204+
"Adult Briefs (Large)",
205+
"Adult Briefs (Medium)")
145206
end
146207
end
147208
end
148-
end
209+
end

0 commit comments

Comments
 (0)