mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-27 21:06:49 +00:00
95 lines
2.8 KiB
Ruby
95 lines
2.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "spec_helper"
|
|
|
|
RSpec.describe "spree/admin/orders/invoice.html.haml" do
|
|
let(:shop) { create(:distributor_enterprise) }
|
|
let(:order) { create(:completed_order_with_totals, distributor: shop) }
|
|
let(:adas_address) do
|
|
Spree::Address.new(
|
|
firstname: "Ada",
|
|
lastname: "Lovelace",
|
|
phone: "0404 123 456",
|
|
address1: "2 Mahome St",
|
|
city: "Thornbury",
|
|
zipcode: "3071",
|
|
state_id: 1,
|
|
state_name: "Victoria",
|
|
)
|
|
end
|
|
let(:adas_address_display) { "2 Mahome St, Thornbury, 3071, Victoria" }
|
|
|
|
before do
|
|
assign(:order, order)
|
|
allow(view).to receive_messages checkout_adjustments_for: [],
|
|
display_line_items_taxes: '',
|
|
display_checkout_tax_total: '10',
|
|
display_checkout_total_less_tax: '8',
|
|
outstanding_balance_label: 'Outstanding Balance'
|
|
|
|
# return a duplicate empaty string for CSS pack request like:
|
|
# 'http://test.host/packs-test/css/mail-1ab2dc7f.css'
|
|
# This is because Wicked PDF will try to force an encoding on the returned string, which will
|
|
# break with a frozen string
|
|
stub_request(:get, ->(uri) { uri.to_s.include? "/css/mail" }).to_return(body: "".dup)
|
|
end
|
|
|
|
it "displays the customer code" do
|
|
order.customer = Customer.create!(
|
|
user: order.user,
|
|
email: order.user.email,
|
|
enterprise: order.distributor,
|
|
code: "Money Penny",
|
|
)
|
|
render
|
|
expect(rendered).to have_content "Code: Money Penny"
|
|
end
|
|
|
|
it "displays the billing address" do
|
|
order.bill_address = adas_address
|
|
render
|
|
expect(rendered).to have_content "Ada Lovelace"
|
|
expect(rendered).to have_content adas_address.phone
|
|
expect(rendered).to have_content adas_address_display
|
|
end
|
|
|
|
it "displays shipping info" do
|
|
order.shipping_method.update!(
|
|
name: "Home delivery",
|
|
require_ship_address: true,
|
|
)
|
|
order.ship_address = adas_address
|
|
|
|
render
|
|
expect(rendered).to have_content "Shipping: Home delivery"
|
|
expect(rendered).to have_content adas_address.phone
|
|
expect(rendered).to have_content adas_address_display
|
|
end
|
|
|
|
it "displays special instructions" do
|
|
order.special_instructions = "The combination is 12345."
|
|
|
|
render
|
|
expect(rendered).to have_content "The combination is 12345."
|
|
end
|
|
|
|
it "hides billing address for pickups" do
|
|
order.ship_address = adas_address
|
|
order.shipping_method.update!(
|
|
name: "Pickup",
|
|
require_ship_address: false,
|
|
)
|
|
|
|
render
|
|
expect(rendered).to have_content "Shipping: Pickup"
|
|
expect(rendered).not_to have_content adas_address_display
|
|
end
|
|
|
|
it "displays order note on invoice when note is given" do
|
|
order.note = "Test note"
|
|
|
|
render
|
|
expect(rendered).to have_content "Test note"
|
|
end
|
|
end
|