mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Invoice do
|
|
let(:distributor) { create(:distributor_enterprise) }
|
|
let(:order) { create(:order, :with_line_item, :completed, distributor:) }
|
|
describe 'presenter' do
|
|
it 'should return an instance of Invoice::DataPresenter' do
|
|
invoice = create(:invoice, order:)
|
|
expect(invoice.presenter).to be_a(Invoice::DataPresenter)
|
|
end
|
|
end
|
|
|
|
describe 'serialize_order' do
|
|
it 'serializes the order' do
|
|
invoice = create(:invoice, order:)
|
|
expect(invoice.data).to eq(Invoice::OrderSerializer.new(order).serializable_hash)
|
|
end
|
|
end
|
|
|
|
describe "previous_invoice" do
|
|
it "should return the previous invoice" do
|
|
invoice1 = create(:invoice, order:, number: 1, created_at: 3.days.ago)
|
|
invoice2 = create(:invoice, order:, number: 2, created_at: 2.days.ago)
|
|
invoice3 = create(:invoice, order:, number: 3, created_at: 1.day.ago)
|
|
expect(invoice3.previous_invoice).to eq(invoice2)
|
|
expect(invoice2.previous_invoice).to eq(invoice1)
|
|
end
|
|
|
|
it "should return nil if there is no previous invoice" do
|
|
invoice = create(:invoice, order:)
|
|
expect(invoice.previous_invoice).to be_nil
|
|
end
|
|
end
|
|
end
|