From c028c0e4771ac1f7815156a10b57d5790572693d Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Wed, 15 Aug 2018 20:15:17 +0300 Subject: [PATCH] Add more tests to deposit handling --- app/models/deposit.rb | 2 +- test/models/deposit_test.rb | 4 +-- .../registrar_area/invoices/new_test.rb | 29 +++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/models/deposit.rb b/app/models/deposit.rb index 41d59ac4c..a3b898047 100644 --- a/app/models/deposit.rb +++ b/app/models/deposit.rb @@ -29,7 +29,7 @@ class Deposit def amount return BigDecimal('0.0') if @amount.blank? - BigDecimal(@amount, 10) + BigDecimal(@amount.to_s.gsub(/,/, '.'), 10) end def issue_prepayment_invoice diff --git a/test/models/deposit_test.rb b/test/models/deposit_test.rb index 09f7de7f3..b7510b960 100644 --- a/test/models/deposit_test.rb +++ b/test/models/deposit_test.rb @@ -40,8 +40,8 @@ class DepositTest < ActiveSupport::TestCase @deposit.amount = "12.00" assert_equal(BigDecimal.new("12.00"), @deposit.amount) - @deposit.amount = "12,00" - assert_equal(BigDecimal.new("12.00"), @deposit.amount) + @deposit.amount = "12,11" + assert_equal(BigDecimal.new("12.11"), @deposit.amount) end def test_amount_is_converted_from_float diff --git a/test/system/registrar_area/invoices/new_test.rb b/test/system/registrar_area/invoices/new_test.rb index 282b109dd..a5a72fbe8 100644 --- a/test/system/registrar_area/invoices/new_test.rb +++ b/test/system/registrar_area/invoices/new_test.rb @@ -29,6 +29,22 @@ class NewInvoiceTest < ApplicationSystemTestCase assert_text 'Pay invoice' end + def test_create_new_invoice_with_comma_in_number + visit registrar_invoices_path + click_link_or_button 'Add deposit' + fill_in 'Amount', with: '200,00' + fill_in 'Description', with: 'My first invoice' + + assert_difference 'Invoice.count', 1 do + click_link_or_button 'Add' + end + + assert_text 'Please pay the following invoice' + assert_text 'Invoice no. 131050' + assert_text 'Subtotal 200,00 €' + assert_text 'Pay invoice' + end + def test_create_new_invoice_fails_when_amount_is_0 visit registrar_invoices_path click_link_or_button 'Add deposit' @@ -41,4 +57,17 @@ class NewInvoiceTest < ApplicationSystemTestCase assert_text 'Amount is too small. Minimum deposit is 0.01 EUR' end + + def test_create_new_invoice_fails_when_amount_is_negative + visit registrar_invoices_path + click_link_or_button 'Add deposit' + fill_in 'Amount', with: '-120.00' + fill_in 'Description', with: 'My first invoice' + + assert_no_difference 'Invoice.count' do + click_link_or_button 'Add' + end + + assert_text 'Amount is too small. Minimum deposit is 0.01 EUR' + end end