mirror of
https://github.com/internetee/registry.git
synced 2025-07-26 04:28:27 +02:00
56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
require 'test_helper'
|
|
|
|
class InvoiceVATRateTest < ActiveSupport::TestCase
|
|
def setup
|
|
@invoice = invoices(:valid)
|
|
end
|
|
|
|
def test_optional_vat_rate
|
|
@invoice.vat_rate = nil
|
|
assert @invoice.valid?
|
|
end
|
|
|
|
def test_vat_rate_validation
|
|
@invoice.vat_rate = -1
|
|
assert @invoice.invalid?
|
|
|
|
@invoice.vat_rate = 0
|
|
assert @invoice.valid?
|
|
|
|
@invoice.vat_rate = 99.9
|
|
assert @invoice.valid?
|
|
|
|
@invoice.vat_rate = 100
|
|
assert @invoice.invalid?
|
|
end
|
|
|
|
def test_serializes_and_deserializes_vat_rate
|
|
invoice = @invoice.dup
|
|
invoice.invoice_items = @invoice.invoice_items
|
|
invoice.vat_rate = BigDecimal('25.5')
|
|
invoice.save!
|
|
invoice.reload
|
|
assert_equal BigDecimal('25.5'), invoice.vat_rate
|
|
end
|
|
|
|
def test_vat_rate_defaults_to_effective_vat_rate_of_a_registrar
|
|
registrar = registrars(:bestnames)
|
|
invoice = @invoice.dup
|
|
invoice.vat_rate = nil
|
|
invoice.buyer = registrar
|
|
invoice.invoice_items = @invoice.invoice_items
|
|
|
|
registrar.stub(:effective_vat_rate, BigDecimal(55)) do
|
|
invoice.save!
|
|
end
|
|
|
|
assert_equal BigDecimal(55), invoice.vat_rate
|
|
end
|
|
|
|
def test_vat_rate_cannot_be_updated
|
|
@invoice.vat_rate = BigDecimal(21)
|
|
@invoice.save!
|
|
@invoice.reload
|
|
refute_equal BigDecimal(21), @invoice.vat_rate
|
|
end
|
|
end
|