mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-04-06 07:29:16 +00:00
Include canceled orders in report when searching
It's a code smell to have a boolean control argument. `Permissions::Order` goes too far and assumes we want to filter out canceled orders when using report's search params and this is not the case.
This commit is contained in:
@@ -22,6 +22,7 @@ module OrderManagement
|
||||
|
||||
@supplier_report = BulkCoopSupplierReport.new
|
||||
@allocation_report = BulkCoopAllocationReport.new
|
||||
@filter_canceled = false
|
||||
end
|
||||
|
||||
def header
|
||||
@@ -138,6 +139,8 @@ module OrderManagement
|
||||
|
||||
private
|
||||
|
||||
attr_reader :filter_canceled
|
||||
|
||||
def line_item_includes
|
||||
[
|
||||
{
|
||||
@@ -149,7 +152,7 @@ module OrderManagement
|
||||
end
|
||||
|
||||
def order_permissions
|
||||
@order_permissions ||= ::Permissions::Order.new(@user, @params[:q])
|
||||
@order_permissions ||= ::Permissions::Order.new(@user, filter_canceled)
|
||||
end
|
||||
|
||||
def report_line_items
|
||||
|
||||
@@ -6,7 +6,7 @@ describe OrderManagement::Reports::BulkCoop::BulkCoopReport do
|
||||
subject { OrderManagement::Reports::BulkCoop::BulkCoopReport.new user, params, true }
|
||||
let(:user) { create(:admin_user) }
|
||||
|
||||
describe "fetching orders" do
|
||||
describe '#table_items' do
|
||||
let(:params) { {} }
|
||||
|
||||
let(:d1) { create(:distributor_enterprise) }
|
||||
@@ -17,17 +17,38 @@ describe OrderManagement::Reports::BulkCoop::BulkCoopReport do
|
||||
before { o1.line_items << li1 }
|
||||
|
||||
context "as a site admin" do
|
||||
it "fetches completed orders" do
|
||||
o2 = create(:order, state: 'cart')
|
||||
o2.line_items << build(:line_item)
|
||||
expect(subject.table_items).to eq([li1])
|
||||
context 'when searching' do
|
||||
let(:params) { { q: { completed_at_gt: '', completed_at_lt: '', distributor_id_in: [] } } }
|
||||
|
||||
it "fetches completed orders" do
|
||||
o2 = create(:order, state: 'cart')
|
||||
o2.line_items << build(:line_item)
|
||||
expect(subject.table_items).to eq([li1])
|
||||
end
|
||||
|
||||
it 'shows canceled orders' do
|
||||
o2 = create(:order, state: 'canceled', completed_at: 1.day.ago, order_cycle: oc1, distributor: d1)
|
||||
line_item = build(:line_item_with_shipment)
|
||||
o2.line_items << line_item
|
||||
expect(subject.table_items).to include(line_item)
|
||||
end
|
||||
end
|
||||
|
||||
it "shows cancelled orders" do
|
||||
o2 = create(:order, state: 'canceled', completed_at: 1.day.ago, order_cycle: oc1, distributor: d1)
|
||||
line_item = build(:line_item_with_shipment)
|
||||
o2.line_items << line_item
|
||||
expect(subject.table_items).to include(line_item)
|
||||
context 'when not searching' do
|
||||
let(:params) { {} }
|
||||
|
||||
it "fetches completed orders" do
|
||||
o2 = create(:order, state: 'cart')
|
||||
o2.line_items << build(:line_item)
|
||||
expect(subject.table_items).to eq([li1])
|
||||
end
|
||||
|
||||
it 'shows canceled orders' do
|
||||
o2 = create(:order, state: 'canceled', completed_at: 1.day.ago, order_cycle: oc1, distributor: d1)
|
||||
line_item = build(:line_item_with_shipment)
|
||||
o2.line_items << line_item
|
||||
expect(subject.table_items).to include(line_item)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user