mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-25 08:09:38 +02:00
Add Transaction Merchant management (#686)
* Add basid crud for merchant management * Tweak UI and add localization * Fix lint * Add filtering by merchant * Add tests * Add stimulus controller to update avatar in merchant form * Add line between merchant rows * Change default merchant color * Cleanup
This commit is contained in:
parent
7f491f5064
commit
9549182462
27 changed files with 363 additions and 18 deletions
39
test/controllers/transactions/merchants_controller_test.rb
Normal file
39
test/controllers/transactions/merchants_controller_test.rb
Normal file
|
@ -0,0 +1,39 @@
|
|||
require "test_helper"
|
||||
|
||||
class Transactions::MerchantsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in @user = users(:family_admin)
|
||||
@merchant = transaction_merchants(:netflix)
|
||||
end
|
||||
|
||||
test "index" do
|
||||
get transactions_merchants_path
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "new" do
|
||||
get new_transactions_merchant_path
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create merchant" do
|
||||
assert_difference("Transaction::Merchant.count") do
|
||||
post transactions_merchants_url, params: { transaction_merchant: { name: "new merchant", color: "#000000" } }
|
||||
end
|
||||
|
||||
assert_redirected_to transactions_merchants_path
|
||||
end
|
||||
|
||||
test "should update merchant" do
|
||||
patch transactions_merchant_url(@merchant), params: { transaction_merchant: { name: "new name", color: "#000000" } }
|
||||
assert_redirected_to transactions_merchants_path
|
||||
end
|
||||
|
||||
test "should destroy merchant" do
|
||||
assert_difference("Transaction::Merchant.count", -1) do
|
||||
delete transactions_merchant_url(@merchant)
|
||||
end
|
||||
|
||||
assert_redirected_to transactions_merchants_path
|
||||
end
|
||||
end
|
|
@ -16,6 +16,8 @@ class ValuationsControllerTest < ActionDispatch::IntegrationTest
|
|||
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 "create should sync account with correct start date" do
|
||||
|
|
9
test/fixtures/transaction/merchants.yml
vendored
Normal file
9
test/fixtures/transaction/merchants.yml
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
netflix:
|
||||
name: Netflix
|
||||
color: "#fd7f6f"
|
||||
family: dylan_family
|
||||
|
||||
amazon:
|
||||
name: Amazon
|
||||
color: "#fd7f6f"
|
||||
family: dylan_family
|
3
test/fixtures/transactions.yml
vendored
3
test/fixtures/transactions.yml
vendored
|
@ -21,6 +21,7 @@ checking_three:
|
|||
amount: 20
|
||||
account: checking
|
||||
currency: USD
|
||||
merchant: amazon
|
||||
|
||||
checking_four:
|
||||
name: Paycheck
|
||||
|
@ -36,6 +37,7 @@ checking_five:
|
|||
amount: 15
|
||||
account: checking
|
||||
currency: USD
|
||||
merchant: netflix
|
||||
|
||||
# Savings account that has these transactions and valuation overrides
|
||||
savings_one:
|
||||
|
@ -92,6 +94,7 @@ credit_card_three:
|
|||
amount: 20
|
||||
account: credit_card
|
||||
currency: USD
|
||||
merchant: amazon
|
||||
|
||||
credit_card_four:
|
||||
name: CC Payment
|
||||
|
|
|
@ -51,6 +51,12 @@ class FamilyTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
test "should destroy dependent merchants" do
|
||||
assert_difference("Transaction::Merchant.count", -@family.transaction_merchants.count) do
|
||||
@family.destroy
|
||||
end
|
||||
end
|
||||
|
||||
test "should calculate total assets" do
|
||||
expected = @expected_snapshots.last["assets"].to_d
|
||||
assert_equal Money.new(expected), @family.assets
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue