mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-02 20:15:22 +02:00
Account namespace updates: part 5 (valuations) (#901)
* Move Valuation to Account namespace * Move account history to controller * Clean up valuation controller and views * Translations and cleanup * Remove unused scopes and methods * Pass brakeman
This commit is contained in:
parent
0bc0d87768
commit
12380dc8ad
45 changed files with 478 additions and 346 deletions
71
test/controllers/account/valuations_controller_test.rb
Normal file
71
test/controllers/account/valuations_controller_test.rb
Normal file
|
@ -0,0 +1,71 @@
|
|||
require "test_helper"
|
||||
|
||||
class Account::ValuationsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in @user = users(:family_admin)
|
||||
@valuation = account_valuations(:savings_one)
|
||||
@account = @valuation.account
|
||||
end
|
||||
|
||||
test "get valuations for an account" do
|
||||
get account_valuations_url(@account)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "new" do
|
||||
get new_account_valuation_url(@account)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create valuation" do
|
||||
assert_difference("Account::Valuation.count") do
|
||||
post account_valuations_url(@account), params: {
|
||||
account_valuation: {
|
||||
value: 19800,
|
||||
date: Date.current
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
assert_equal "Valuation created", flash[:notice]
|
||||
assert_enqueued_with job: AccountSyncJob
|
||||
assert_redirected_to account_path(@account)
|
||||
end
|
||||
|
||||
test "error when valuation already exists for date" do
|
||||
assert_difference("Account::Valuation.count", 0) do
|
||||
post account_valuations_url(@account), params: {
|
||||
account_valuation: {
|
||||
value: 19800,
|
||||
date: @valuation.date
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
assert_equal "Date has already been taken", flash[:error]
|
||||
assert_redirected_to account_path(@account)
|
||||
end
|
||||
|
||||
test "should update valuation" do
|
||||
patch account_valuation_url(@account, @valuation), params: {
|
||||
account_valuation: {
|
||||
value: 19550,
|
||||
date: Date.current
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal "Valuation updated", flash[:notice]
|
||||
assert_enqueued_with job: AccountSyncJob
|
||||
assert_redirected_to account_path(@account)
|
||||
end
|
||||
|
||||
test "should destroy valuation" do
|
||||
assert_difference("Account::Valuation.count", -1) do
|
||||
delete account_valuation_url(@account, @valuation)
|
||||
end
|
||||
|
||||
assert_equal "Valuation deleted", flash[:notice]
|
||||
assert_enqueued_with job: AccountSyncJob
|
||||
assert_redirected_to account_path(@account)
|
||||
end
|
||||
end
|
|
@ -44,7 +44,7 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
test "should create an account" do
|
||||
assert_difference [ "Account.count", "Valuation.count" ], 1 do
|
||||
assert_difference [ "Account.count", "Account::Valuation.count" ], 1 do
|
||||
post accounts_path, params: {
|
||||
account: {
|
||||
accountable_type: "Depository",
|
||||
|
@ -60,7 +60,7 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
test "can add optional start date and balance to an account on create" do
|
||||
assert_difference -> { Account.count } => 1, -> { Valuation.count } => 2 do
|
||||
assert_difference -> { Account.count } => 1, -> { Account::Valuation.count } => 2 do
|
||||
post accounts_path, params: {
|
||||
account: {
|
||||
accountable_type: "Depository",
|
||||
|
|
|
@ -75,7 +75,7 @@ class TransactionsControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
assert_equal transaction_params[:amount].to_d, Transaction.order(created_at: :desc).first.amount
|
||||
assert_equal flash[:notice], "New transaction created successfully"
|
||||
assert_equal "New transaction created successfully", flash[:notice]
|
||||
assert_enqueued_with(job: AccountSyncJob)
|
||||
assert_redirected_to transactions_url
|
||||
end
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
require "test_helper"
|
||||
|
||||
class ValuationsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in @user = users(:family_admin)
|
||||
@valuation = valuations(:savings_one)
|
||||
@account = @valuation.account
|
||||
end
|
||||
|
||||
test "new" do
|
||||
get new_account_valuation_url(@account)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create valuation" do
|
||||
assert_difference("Valuation.count") do
|
||||
post account_valuations_url(@account), params: { valuation: { value: 1, date: Date.current, type: "Appraisal" } }
|
||||
end
|
||||
|
||||
assert_redirected_to account_path(@valuation.account)
|
||||
end
|
||||
|
||||
test "should create valuation with account's currency" do
|
||||
foreign_account = accounts(:eur_checking)
|
||||
post account_valuations_url(foreign_account), params: { valuation: { value: 1, date: Date.current, type: "Appraisal" } }
|
||||
assert_equal foreign_account.currency, Valuation.order(created_at: :desc).first.currency
|
||||
end
|
||||
|
||||
test "create should sync account with correct start date" do
|
||||
date = Date.current - 1.day
|
||||
|
||||
assert_enqueued_with(job: AccountSyncJob, args: [ @account, date ]) do
|
||||
post account_valuations_url(@account), params: { valuation: { value: 2, date:, type: "Appraisal" } }
|
||||
end
|
||||
end
|
||||
|
||||
test "should update valuation" do
|
||||
date = @valuation.date
|
||||
patch valuation_url(@valuation), params: { valuation: { account_id: @valuation.account_id, value: 1, date:, type: "Appraisal" } }
|
||||
assert_redirected_to account_path(@valuation.account)
|
||||
end
|
||||
|
||||
test "update should sync account with correct start date" do
|
||||
new_date = @valuation.date - 1.day
|
||||
assert_enqueued_with(job: AccountSyncJob, args: [ @account, new_date ]) do
|
||||
patch valuation_url(@valuation), params: { valuation: { account_id: @valuation.account_id, value: @valuation.value, date: new_date, type: "Appraisal" } }
|
||||
end
|
||||
|
||||
new_date = @valuation.reload.date + 1.day
|
||||
assert_enqueued_with(job: AccountSyncJob, args: [ @account, @valuation.date ]) do
|
||||
patch valuation_url(@valuation), params: { valuation: { account_id: @valuation.account_id, value: @valuation.value, date: new_date, type: "Appraisal" } }
|
||||
end
|
||||
end
|
||||
|
||||
test "should destroy valuation" do
|
||||
assert_difference("Valuation.count", -1) do
|
||||
delete valuation_url(@valuation)
|
||||
end
|
||||
|
||||
assert_redirected_to account_path(@account)
|
||||
end
|
||||
|
||||
test "destroy should sync account with correct start date" do
|
||||
first, second = @account.valuations.order(:date).all
|
||||
|
||||
assert_enqueued_with(job: AccountSyncJob, args: [ @account, first.date ]) do
|
||||
delete valuation_url(second)
|
||||
end
|
||||
|
||||
assert_enqueued_with(job: AccountSyncJob, args: [ @account, nil ]) do
|
||||
delete valuation_url(first)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue