mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-12 18:36:49 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
159bbe18e6 | ||
|
|
53fb00ce0c |
@@ -198,8 +198,13 @@ module OpenFoodNetwork
|
||||
private
|
||||
|
||||
def shipping_method(line_items)
|
||||
line_items.first.order.shipments.first.
|
||||
andand.shipping_rates.andand.first.andand.shipping_method
|
||||
shipping_rates = line_items.first.order.shipments.first.
|
||||
andand.shipping_rates
|
||||
|
||||
return unless shipping_rates
|
||||
|
||||
shipping_rate = shipping_rates.find(&:selected) || shipping_rates.first
|
||||
shipping_rate.try(:shipping_method)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,14 +2,7 @@ require "spec_helper"
|
||||
|
||||
RSpec.describe OpenFoodNetwork::OrdersAndFulfillmentsReport::CustomerTotalsReport do
|
||||
let!(:distributor) { create(:distributor_enterprise) }
|
||||
|
||||
let!(:customer) { create(:customer, enterprise: distributor) }
|
||||
|
||||
let!(:order) do
|
||||
create(:completed_order_with_totals, line_items_count: 1, user: customer.user,
|
||||
customer: customer, distributor: distributor)
|
||||
end
|
||||
|
||||
let(:current_user) { distributor.owner }
|
||||
let(:permissions) { OpenFoodNetwork::Permissions.new(current_user) }
|
||||
|
||||
@@ -22,18 +15,51 @@ RSpec.describe OpenFoodNetwork::OrdersAndFulfillmentsReport::CustomerTotalsRepor
|
||||
OpenFoodNetwork::OrderGrouper.new(report.rules, report.columns).table(report.table_items)
|
||||
end
|
||||
|
||||
it "generates the report" do
|
||||
expect(report_table.length).to eq(2)
|
||||
context "viewing the report" do
|
||||
let!(:order) do
|
||||
create(:completed_order_with_totals, line_items_count: 1, user: customer.user,
|
||||
customer: customer, distributor: distributor)
|
||||
end
|
||||
|
||||
it "generates the report" do
|
||||
expect(report_table.length).to eq(2)
|
||||
end
|
||||
|
||||
it "has a line item row" do
|
||||
distributor_name_field = report_table.first[0]
|
||||
expect(distributor_name_field).to eq distributor.name
|
||||
|
||||
customer_name_field = report_table.first[1]
|
||||
expect(customer_name_field).to eq order.bill_address.full_name
|
||||
|
||||
total_field = report_table.last[5]
|
||||
expect(total_field).to eq I18n.t("admin.reports.total")
|
||||
end
|
||||
end
|
||||
|
||||
it "has a line item row" do
|
||||
distributor_name_field = report_table.first[0]
|
||||
expect(distributor_name_field).to eq distributor.name
|
||||
context "loading shipping methods" do
|
||||
let!(:shipping_method1) {
|
||||
create(:shipping_method, distributors: [distributor], name: "First")
|
||||
}
|
||||
let!(:shipping_method2) {
|
||||
create(:shipping_method, distributors: [distributor], name: "Second")
|
||||
}
|
||||
let!(:shipping_method3) {
|
||||
create(:shipping_method, distributors: [distributor], name: "Third")
|
||||
}
|
||||
let!(:order) do
|
||||
create(:completed_order_with_totals, line_items_count: 1, user: customer.user,
|
||||
customer: customer, distributor: distributor)
|
||||
end
|
||||
|
||||
customer_name_field = report_table.first[1]
|
||||
expect(customer_name_field).to eq order.bill_address.full_name
|
||||
before do
|
||||
order.shipments.each(&:refresh_rates)
|
||||
order.select_shipping_method(shipping_method2.id)
|
||||
end
|
||||
|
||||
total_field = report_table.last[5]
|
||||
expect(total_field).to eq I18n.t("admin.reports.total")
|
||||
it "displays the correct shipping_method" do
|
||||
shipping_method_name_field = report_table.first[15]
|
||||
expect(shipping_method_name_field).to eq shipping_method2.name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user