Files
openfoodnetwork/spec/helpers/spree/admin/orders_helper_spec.rb

103 lines
3.0 KiB
Ruby

require 'spec_helper'
describe Spree::Admin::OrdersHelper, type: :helper do
describe "#orders_links" do
let(:order) { double(:order) }
let(:distributor) { double(:enterprise) }
around do |example|
original_invoices_setting = Spree::Config[:enable_invoices?]
original_tickets_setting = Spree::Config[:enable_receipt_printing?]
example.run
Spree::Config[:enable_invoices?] = original_invoices_setting
Spree::Config[:enable_receipt_printing?] = original_tickets_setting
end
before do
allow(order).to receive(:complete?) { false }
allow(order).to receive(:ready_to_ship?) { false }
allow(order).to receive(:can_cancel?) { false }
Spree::Config[:enable_invoices?] = false
Spree::Config[:enable_receipt_printing?] = false
end
it "returns only edit order link when all conditions are set to false" do
links = helper.order_links(order)
expect(links.size).to eq 1
expect(links.first[:name]).to eq "Edit Order"
end
context "complete order" do
before do
allow(order).to receive(:complete?) { true }
end
it "returns edit order and resend confirmation links" do
links = helper.order_links(order)
expect(links.size).to eq 2
expect(links[0][:name]).to eq "Edit Order"
expect(links[1][:name]).to eq "Resend Confirmation"
end
context "that can be canceled" do
before do
allow(order).to receive(:can_cancel?) { true }
allow(order).to receive(:number) { 111 }
end
it "adds cancel order link" do
links = helper.order_links(order)
expect(links.size).to eq 3
expect(links[2][:name]).to eq "Cancel Order"
end
end
context "that can be shipped" do
before do
allow(order).to receive(:ready_to_ship?) { true }
end
it "adds ship order link" do
links = helper.order_links(order)
expect(links.size).to eq 3
expect(links[2][:name]).to eq "Ship Order"
end
end
context "with invoices enabled" do
before do
Spree::Config[:enable_invoices?] = true
allow(order).to receive(:distributor) { distributor }
allow(distributor).to receive(:can_invoice?) { true }
end
it "adds send and print invoice links" do
links = helper.order_links(order)
expect(links.size).to eq 4
expect(links[2][:name]).to eq "Send Invoice"
expect(links[3][:name]).to eq "Print Invoice"
end
end
context "with tickets enabled" do
before do
Spree::Config[:enable_receipt_printing?] = true
end
it "adds print and select ticket links" do
links = helper.order_links(order)
expect(links.size).to eq 4
expect(links[2][:name]).to eq "Print Ticket"
expect(links[3][:name]).to eq "Select printer for tickets"
end
end
end
end
end