From 16647006c620fbde0b7bb279e3255b5959a3ca5e Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Tue, 16 Mar 2021 16:53:57 +0100 Subject: [PATCH] Feature-test payments report This report displays order balances and we'll need this basic feature-test coverage to ensure it keeps working once we refactor them. --- lib/open_food_network/payments_report.rb | 2 + .../admin/reports/payments_report_spec.rb | 49 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 spec/features/admin/reports/payments_report_spec.rb diff --git a/lib/open_food_network/payments_report.rb b/lib/open_food_network/payments_report.rb index 1ee3f0a291..4b88603abf 100644 --- a/lib/open_food_network/payments_report.rb +++ b/lib/open_food_network/payments_report.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module OpenFoodNetwork class PaymentsReport attr_reader :params diff --git a/spec/features/admin/reports/payments_report_spec.rb b/spec/features/admin/reports/payments_report_spec.rb new file mode 100644 index 0000000000..b618bae352 --- /dev/null +++ b/spec/features/admin/reports/payments_report_spec.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe "Payments Reports" do + include AuthenticationHelper + + let!(:order) do + create( + :order_with_distributor, + state: 'complete', + completed_at: Time.zone.now, + order_cycle: order_cycle + ) + end + let(:order_cycle) { create(:simple_order_cycle) } + let!(:line_item) do + create(:line_item_with_shipment, order: order, product: product) + end + let(:product) { create(:product, supplier: supplier) } + let(:supplier) { create(:supplier_enterprise) } + + before { login_as_admin } + + it 'shows orders with payment state, their balance and totals' do + visit spree.payments_admin_reports_path + + select I18n.t(:report_itemised_payment), from: "report_type" + find("[type='submit']").click + + expect(page.find("#listing_orders thead tr").text).to eq([ + I18n.t(:report_header_payment_state), + I18n.t(:report_header_distributor), + I18n.t(:report_header_product_total_price, currency: currency_symbol), + I18n.t(:report_header_shipping_total_price, currency: currency_symbol), + I18n.t(:report_header_outstanding_balance_price, currency: currency_symbol), + I18n.t(:report_header_total_price, currency: currency_symbol) + ].join(" ")) + + expect(page.find("#listing_orders tbody tr").text).to eq([ + order.payment_state, + order.distributor.name, + order.item_total.to_f, + order.ship_total.to_f, + order.outstanding_balance.to_f, + order.total.to_f + ].join(" ")) + end +end