mirror of
https://github.com/internetee/registry.git
synced 2025-06-12 23:54:44 +02:00
Refactor and improve invoices
- `runner 'Invoice.cancel_overdue_invoices'` in `schedule.rb` is changed to `rake 'invoices:cancel_overdue'`. - `invoices.payment_term` database column is removed and its value is hardcoded in UI. - `invoices.paid_at` is removed as unused - `invoices.due_date` column's type is now `date`. - `Invoice#invoice_items` renamed to `Invoice#items` and `Invoice` interface to get a list of items is unified. - Default date format in UI. - Default translations are used. - Tests improved. - Specs converted to tests and removed along with factories. - Database structure improved.
This commit is contained in:
parent
d86ec026e3
commit
a97728c0f3
65 changed files with 758 additions and 341 deletions
20
test/system/admin_area/invoices_test.rb
Normal file
20
test/system/admin_area/invoices_test.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AdminAreaInvoicesTest < ApplicationSystemTestCase
|
||||
setup do
|
||||
sign_in users(:admin)
|
||||
@invoice = invoices(:one)
|
||||
end
|
||||
|
||||
def test_cancels_an_invoice
|
||||
@invoice.account_activity = nil
|
||||
assert @invoice.cancellable?
|
||||
|
||||
visit admin_invoice_url(@invoice)
|
||||
click_on 'Cancel'
|
||||
@invoice.reload
|
||||
|
||||
assert @invoice.cancelled?
|
||||
assert_text 'Invoice has been cancelled'
|
||||
end
|
||||
end
|
|
@ -1,12 +1,12 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ListInvoicesTest < ApplicationSystemTestCase
|
||||
def setup
|
||||
super
|
||||
|
||||
setup do
|
||||
@user = users(:api_bestnames)
|
||||
@registrar_invoices = @user.registrar.invoices
|
||||
sign_in @user
|
||||
|
||||
@invoice = invoices(:one)
|
||||
eliminate_effect_of_other_invoices
|
||||
end
|
||||
|
||||
def test_show_balance
|
||||
|
@ -14,15 +14,31 @@ class ListInvoicesTest < ApplicationSystemTestCase
|
|||
assert_text "Your current account balance is 100,00 EUR"
|
||||
end
|
||||
|
||||
def test_show_multiple_invoices
|
||||
@invoices = invoices
|
||||
@registrar_invoices = []
|
||||
@invoices.each do |invoice|
|
||||
@registrar_invoices << invoice
|
||||
end
|
||||
def test_show_invoices_of_current_registrar
|
||||
registrar = registrars(:bestnames)
|
||||
@user.update!(registrar: registrar)
|
||||
@invoice.update!(seller: registrar)
|
||||
|
||||
visit registrar_invoices_path
|
||||
assert_text "Unpaid", count: 5
|
||||
assert_text "Invoice no.", count: 7
|
||||
visit registrar_invoices_url
|
||||
|
||||
assert_css '.invoice'
|
||||
end
|
||||
end
|
||||
|
||||
def test_do_not_show_invoices_of_other_registrars
|
||||
registrar = registrars(:goodnames)
|
||||
@user.update!(registrar: registrar)
|
||||
@invoice.update!(seller: registrar)
|
||||
|
||||
visit registrar_invoices_url
|
||||
|
||||
assert_no_css '.invoice'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def eliminate_effect_of_other_invoices
|
||||
Invoice.connection.disable_referential_integrity do
|
||||
Invoice.delete_all("id != #{@invoice.id}")
|
||||
end
|
||||
end
|
||||
end
|
|
@ -12,8 +12,8 @@ class PaymentCallbackTest < ApplicationSystemTestCase
|
|||
@invoice = invoices(:for_payments_test)
|
||||
invoice_item = invoice_items(:one)
|
||||
|
||||
@invoice.invoice_items << invoice_item
|
||||
@invoice.invoice_items << invoice_item
|
||||
@invoice.items << invoice_item
|
||||
@invoice.items << invoice_item
|
||||
@user.registrar.invoices << @invoice
|
||||
end
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ class PaymentReturnTest < ApplicationSystemTestCase
|
|||
@invoice = invoices(:for_payments_test)
|
||||
invoice_item = invoice_items(:one)
|
||||
|
||||
@invoice.invoice_items << invoice_item
|
||||
@invoice.invoice_items << invoice_item
|
||||
@invoice.items << invoice_item
|
||||
@invoice.items << invoice_item
|
||||
@user.registrar.invoices << @invoice
|
||||
end
|
||||
|
||||
|
|
20
test/system/registrar_area/invoices_test.rb
Normal file
20
test/system/registrar_area/invoices_test.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
require 'test_helper'
|
||||
|
||||
class RegistrarAreaInvoicesTest < ApplicationSystemTestCase
|
||||
setup do
|
||||
sign_in users(:api_bestnames)
|
||||
@invoice = invoices(:one)
|
||||
end
|
||||
|
||||
def test_cancels_an_invoice
|
||||
@invoice.account_activity = nil
|
||||
assert @invoice.cancellable?
|
||||
|
||||
visit registrar_invoice_url(@invoice)
|
||||
click_on 'Cancel'
|
||||
@invoice.reload
|
||||
|
||||
assert @invoice.cancelled?
|
||||
assert_text 'Invoice has been cancelled'
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue