mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
12776: add specs
This commit is contained in:
committed by
Rachel Arnould
parent
7cb28fd064
commit
4349e42a84
69
spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb
Normal file
69
spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb
Normal file
@@ -0,0 +1,69 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "spec_helper"
|
||||
|
||||
RSpec.describe "Pay Your Suppliers Report" do
|
||||
let(:hub) { create(:distributor_enterprise) }
|
||||
let(:order_cycle) { create(:open_order_cycle, distributors: [hub]) }
|
||||
let(:product) { order.products.first }
|
||||
let(:variant) { product.variants.first }
|
||||
let(:supplier) { variant.supplier }
|
||||
let(:current_user) { hub.owner }
|
||||
let!(:order) do
|
||||
create(:completed_order_with_totals, distributor: hub, order_cycle:, line_items_count: 1)
|
||||
end
|
||||
let(:params) { { display_summary_row: true } }
|
||||
let(:report) { Reporting::Reports::Suppliers::Base.new(current_user, { q: params }) }
|
||||
let(:report_table_rows) { report.rows }
|
||||
|
||||
context "without fees and taxes" do
|
||||
it "Generates the report" do
|
||||
expect(report_table_rows.length).to eq(1)
|
||||
table_row = report_table_rows.first
|
||||
|
||||
expect(table_row.producer).to eq(supplier.name)
|
||||
expect(table_row.producer_address).to eq(supplier.address.full_address)
|
||||
expect(table_row.producer_abn_acn).to eq("none")
|
||||
expect(table_row.email).to eq("none")
|
||||
expect(table_row.hub).to eq(hub.name)
|
||||
expect(table_row.hub_address).to eq(hub.address.full_address)
|
||||
expect(table_row.hub_contact_email).to eq("none")
|
||||
expect(table_row.order_number).to eq(order.number)
|
||||
expect(table_row.order_date).to eq(order.completed_at.strftime("%d/%m/%Y"))
|
||||
expect(table_row.order_cycle).to eq(order_cycle.name)
|
||||
expect(table_row.order_cycle_start_date).to eq(order_cycle.orders_open_at.strftime("%d/%m/%Y"))
|
||||
expect(table_row.order_cycle_end_date).to eq(order_cycle.orders_close_at.strftime("%d/%m/%Y"))
|
||||
expect(table_row.product).to eq(product.name)
|
||||
expect(table_row.variant_unit_name).to eq(variant.full_name)
|
||||
expect(table_row.quantity).to eq(1)
|
||||
expect(table_row.total_excl_vat_and_fees.to_f).to eq(10.0)
|
||||
expect(table_row.total_excl_vat.to_f).to eq(10.0)
|
||||
expect(table_row.total_fees_excl_vat.to_f).to eq(0.0)
|
||||
expect(table_row.total_vat_on_fees.to_f).to eq(0.0)
|
||||
expect(table_row.total_tax.to_f).to eq(0.0)
|
||||
expect(table_row.total.to_f).to eq(10.0)
|
||||
end
|
||||
end
|
||||
|
||||
context "with taxes and fees" do
|
||||
let(:line_item) { order.line_items.first }
|
||||
let!(:fees_adjustment) do
|
||||
create(:adjustment, originator_type: "EnterpriseFee", adjustable: line_item, amount: 0.1)
|
||||
end
|
||||
let!(:tax_adjustment) do
|
||||
create(:adjustment, originator_type: "Spree::TaxRate", adjustable: line_item, amount: 0.1)
|
||||
end
|
||||
|
||||
it "Generates the report" do
|
||||
expect(report_table_rows.length).to eq(1)
|
||||
table_row = report_table_rows.first
|
||||
|
||||
expect(table_row.total_excl_vat_and_fees.to_f).to eq(10.0)
|
||||
expect(table_row.total_excl_vat.to_f).to eq(10.1)
|
||||
expect(table_row.total_fees_excl_vat.to_f).to eq(0.1)
|
||||
expect(table_row.total_vat_on_fees.to_f).to eq(0.0)
|
||||
expect(table_row.total_tax.to_f).to eq(0.1)
|
||||
expect(table_row.total.to_f).to eq(10.2)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user