mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
45 lines
1.3 KiB
Ruby
45 lines
1.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
module Spree
|
|
describe Calculator do
|
|
let(:calculator) { Spree::Calculator.new }
|
|
let!(:enterprise) { create(:enterprise) }
|
|
let!(:order) { create(:order) }
|
|
let!(:shipment) { create(:shipment) }
|
|
let!(:line_item) { create(:line_item, order: order) }
|
|
let!(:line_item2) { create(:line_item, order: order) }
|
|
|
|
before do
|
|
order.line_items << line_item
|
|
order.line_items << line_item2
|
|
order.shipments = [shipment]
|
|
end
|
|
|
|
describe "#line_items_for" do
|
|
it "returns the line item if given a line item" do
|
|
result = calculator.__send__(:line_items_for, line_item)
|
|
|
|
expect(result).to eq [line_item]
|
|
end
|
|
|
|
it "returns line items if given an object with line items" do
|
|
result = calculator.__send__(:line_items_for, order)
|
|
|
|
expect(result).to eq [line_item, line_item2]
|
|
end
|
|
|
|
it "returns line items if given an object with an order" do
|
|
result = calculator.__send__(:line_items_for, shipment)
|
|
|
|
expect(result).to eq [line_item, line_item2]
|
|
end
|
|
|
|
it "returns the original object if given anything else" do
|
|
result = calculator.__send__(:line_items_for, enterprise)
|
|
|
|
expect(result).to eq [enterprise]
|
|
end
|
|
end
|
|
end
|
|
end
|