Files
openfoodnetwork/spec/models/invoice_spec.rb
2025-05-21 09:41:00 +02:00

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