1
0
Fork 0
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:
Jakub Kottnauer 2024-04-29 21:17:28 +02:00 committed by GitHub
parent 7f491f5064
commit 9549182462
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 363 additions and 18 deletions

View 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

View file

@ -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

View file

@ -0,0 +1,9 @@
netflix:
name: Netflix
color: "#fd7f6f"
family: dylan_family
amazon:
name: Amazon
color: "#fd7f6f"
family: dylan_family

View file

@ -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

View file

@ -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