Skip to content

Commit 161ac44

Browse files
committed
Merge main
1 parent 474e3ac commit 161ac44

1 file changed

Lines changed: 13 additions & 79 deletions

File tree

spec/services/reports/adult_incontinence_report_service_spec.rb

Lines changed: 13 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@
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,
1513
"% adult incontinence bought" => "0%",
1614
"% adult incontinence supplies donated" => "0%",
15+
"Adult incontinence supplies distributed" => "0",
1716
"Adult incontinence supplies per adult per month" => 0,
1817
"Money spent purchasing adult incontinence supplies" => "$0.00"
1918
}))
@@ -40,53 +39,15 @@
4039
adult_incontinence_item = organization.items.adult_incontinence.first
4140
non_adult_incontinence_item = organization.items.where.not(id: organization.items.adult_incontinence).first
4241

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

8445
# Distributions
8546
distributions = create_list(:distribution, 2, issued_at: within_time, organization: organization)
8647
outside_distributions = create_list(:distribution, 2, issued_at: outside_time, organization: organization)
8748
(distributions + outside_distributions).each do |dist|
88-
create_list(:line_item, 5, :distribution, quantity: 5000, item: adult_incontinence_item, itemizable: dist)
89-
create_list(:line_item, 5, :distribution, quantity: 500, item: non_adult_incontinence_item, itemizable: 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)
9051
end
9152

9253
# Donations
@@ -133,35 +94,15 @@
13394
end
13495
end
13596

136-
it "returns an accurate number of adult served per month" do
137-
expect(report.adults_served_per_month.round).to eq(108)
138-
end
139-
140-
it "should return the number of loose adult incontinence supplies distributed" do
141-
expect(report.distributed_adult_incontinence_items_from_kits).to eq(1500.0)
142-
end
143-
it "should return the number of distributed adult incontinence items from kits" do
144-
expect(report.distributed_adult_incontinence_items_from_kits).to eq(1500.0)
145-
end
146-
147-
it "should return the number of distributed kits only containing adult incontinence items per month" do
148-
expect(report.total_distributed_kits_containing_adult_incontinence_items_per_month).to eq(25.0)
149-
end
150-
151-
it "should return the kits distributed within a specific year" do
152-
result = report.distributed_kits_for_year
153-
expect(result.to_a).to match_array([@kit_1.id, @kit_2.id, @kit_3.id, @kit_4.id])
154-
end
155-
15697
it 'should report normal values' do
15798
organization.items.adult_incontinence.first.update!(distribution_quantity: 20)
99+
158100
expect(report.report[:name]).to eq("Adult Incontinence")
159101
expect(report.report[:entries]).to match(hash_including({
160102
"% adult incontinence bought" => "60%",
161103
"% adult incontinence supplies donated" => "40%",
162-
"Adults Assisted Per Month" => 233.33,
163-
"Adult incontinence supplies distributed" => "51,800",
164-
"Adult incontinence supplies per adult per month" => 18.5,
104+
"Adult incontinence supplies distributed" => "2,000",
105+
"Adult incontinence supplies per adult per month" => 20,
165106
"Money spent purchasing adult incontinence supplies" => "$30.00"
166107
}))
167108
expect(report.report[:entries]['Adult incontinence supplies'].split(', '))
@@ -174,22 +115,18 @@
174115
"Adult Briefs (XXS)",
175116
"Adult Incontinence Pads",
176117
"Underpads (Pack)",
177-
"Adult Cloth Diapers (Large/XL/XXL)",
178-
"Adult Cloth Diapers (Small/Medium)",
179118
"Liners (Incontinence)",
180-
"Adult Briefs (Small)",
181-
"Adult Briefs (Large)",
182-
"Adult Briefs (Medium)")
119+
"Adult Cloth Diapers (Large/XL/XXL)",
120+
"Adult Cloth Diapers (Small/Medium)")
183121
end
184122

185123
it 'should handle null distribution quantity' do
186124
expect(report.report[:name]).to eq("Adult Incontinence")
187125
expect(report.report[:entries]).to match(hash_including({
188126
"% adult incontinence bought" => "60%",
189127
"% adult incontinence supplies donated" => "40%",
190-
"Adult incontinence supplies distributed" => "51,800",
191-
"Adults Assisted Per Month" => 108.33,
192-
"Adult incontinence supplies per adult per month" => 39.85,
128+
"Adult incontinence supplies distributed" => "2,000",
129+
"Adult incontinence supplies per adult per month" => 50,
193130
"Money spent purchasing adult incontinence supplies" => "$30.00"
194131
}))
195132
expect(report.report[:entries]['Adult incontinence supplies'].split(', '))
@@ -202,12 +139,9 @@
202139
"Adult Briefs (XXS)",
203140
"Adult Incontinence Pads",
204141
"Underpads (Pack)",
205-
"Adult Cloth Diapers (Large/XL/XXL)",
206-
"Adult Cloth Diapers (Small/Medium)",
207-
"Liners (Incontinence)",
208-
"Adult Briefs (Small)",
209-
"Adult Briefs (Large)",
210-
"Adult Briefs (Medium)")
142+
"Liners (Incontinence)",
143+
"Adult Cloth Diapers (Large/XL/XXL)",
144+
"Adult Cloth Diapers (Small/Medium)")
211145
end
212146
end
213147
end

0 commit comments

Comments
 (0)