diff --git a/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb b/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb index 490787cf82..ff73f6d12e 100644 --- a/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb +++ b/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb @@ -7,12 +7,12 @@ module Reporting module OrdersAndFulfillment RSpec.describe OrderCycleSupplierTotalsByDistributor do let!(:distributor) { create(:distributor_enterprise) } - let!(:order) do - create(:completed_order_with_totals, line_items_count: 3, distributor:) - end - let(:supplier) { order.line_items.first.variant.supplier } + let(:order_cycle) { create(:simple_order_cycle, distributors: [distributor]) } describe "as the distributor" do + let!(:order) do + create(:completed_order_with_totals, line_items_count: 3, distributor:) + end let(:current_user) { distributor.owner } let(:params) { { display_summary_row: true } } let(:report) do @@ -42,18 +42,32 @@ module Reporting end end - describe "as the supplier of the order cycle" do + describe "as the supplier permitting products in the order cycle" do + let!(:order) { + create(:completed_order_with_totals, line_items_count: 0, distributor:, + order_cycle_id: order_cycle.id) + } + let(:supplier){ order.line_items.first.variant.supplier } + before do - pending("S2 bug fix - #12835") + 3.times do + owner = create(:user) + s = create(:supplier_enterprise, owner:) + variant = create(:variant, supplier: s) + create(:line_item_with_shipment, variant:, quantity: 1, order:) + end + + create(:enterprise_relationship, parent: supplier, child: distributor, + permissions_list: [:add_to_order_cycle]) end - let!(:current_user) { supplier.owner } - let!(:params) { { display_summary_row: true } } - let!(:report) do + let(:current_user) { supplier.owner } + let(:params) { { display_summary_row: true } } + let(:report) do OrderCycleSupplierTotalsByDistributor.new(current_user, params) end - let!(:report_table) do + let(:report_table) do report.table_rows end diff --git a/spec/system/admin/reports/orders_and_fulfillment_spec.rb b/spec/system/admin/reports/orders_and_fulfillment_spec.rb index 4495b82700..036876aa87 100644 --- a/spec/system/admin/reports/orders_and_fulfillment_spec.rb +++ b/spec/system/admin/reports/orders_and_fulfillment_spec.rb @@ -423,14 +423,19 @@ RSpec.describe "Orders And Fulfillment" do end end - context "as the supplier" do + context "as the supplier granting P-OC to distributor" do let(:current_user) { supplier.owner } before do - pending("S2 bug fix - #12835") + create(:enterprise_relationship, parent: supplier, child: distributor, + permissions_list: [:add_to_order_cycle]) + login_as(current_user) - visit admin_reports_path - click_link "Order Cycle Supplier Totals by Distributor" + visit admin_report_path(:orders_and_fulfillment, + :order_cycle_supplier_totals_by_distributor) + + uncheck "Header Row" + pending("S2 bug fix - #12835") run_report end @@ -456,24 +461,20 @@ RSpec.describe "Orders And Fulfillment" do end it "aggregates results per variant" do - expect(all('table.report__table tbody tr').count).to eq(4) + rows = find("table.report__table").all("tbody tr") + table = rows.map { |r| r.all("td").map { |c| c.text.strip } } + + expect(table.count).to eq(4) # 1 row per variant = 2 rows - # 2 TOTAL rows + # 2 TOTAL rows for distributors # 4 rows total - expect(table_headers[0]).to eq( - ["Supplier Name", "Baked Beans", "1g Small", - "Distributor Name", "7", "10.0", "70.0", "UPS Ground"] - ) - expect(table_headers[1]).to eq( - ["", "", "", "TOTAL", "7", "", "70.0", ""] - ) - expect(table_headers[2]).to eq( - ["Supplier Name", "Baked Beans", "1g Big", - "Distributor Name", - "3", "10.0", "30.0", "UPS Ground"] - ) - expect(table_headers[3]).to eq(["", "", "", "TOTAL", "3", "", "30.0", ""]) + expect(table[0]).to eq(["Supplier Name", "Baked Beans", "1g Big", + "Distributor Name", "3", "10.0", "30.0", "UPS Ground"]) + expect(table[1]).to eq(["", "", "", "TOTAL", "3", "", "30.0", ""]) + expect(table[2]).to eq(["Supplier Name", "Baked Beans", "1g Small", + "Distributor Name", "7", "10.0", "70.0", "UPS Ground"]) + expect(table[3]).to eq(["", "", "", "TOTAL", "7", "", "70.0", ""]) end end end