fix(infra): update transaction amount handling to use CanonicalAmount and ensure negative values in transaction tests
This commit is contained in:
@@ -89,7 +89,7 @@ internal sealed class PlaidAddedTransactionHandler : IPlaidAddedTransactionHandl
|
||||
account.Id,
|
||||
addedTransaction.Merchant,
|
||||
addedTransaction.Description,
|
||||
addedTransaction.Amount,
|
||||
addedTransaction.CanonicalAmount,
|
||||
addedTransaction.PostedDate,
|
||||
transactionMetadata
|
||||
);
|
||||
|
||||
@@ -7,6 +7,7 @@ public static class PlaidExtensions
|
||||
{
|
||||
public string Merchant => transaction.MerchantName ?? "Unknown merchant";
|
||||
public string Description => transaction.OriginalDescription ?? "";
|
||||
public decimal? CanonicalAmount => transaction.Amount is decimal amount ? -amount : null;
|
||||
public DateTimeOffset PostedDate => transaction.Datetime ?? (
|
||||
transaction.Date.HasValue
|
||||
? new DateTimeOffset(
|
||||
|
||||
@@ -84,7 +84,7 @@ internal sealed class PlaidModifiedTransactionHandler : IPlaidModifiedTransactio
|
||||
existing.AccountId,
|
||||
plaidModifiedTransaction.Merchant,
|
||||
plaidModifiedTransaction.Description,
|
||||
plaidModifiedTransaction.Amount,
|
||||
plaidModifiedTransaction.CanonicalAmount,
|
||||
plaidModifiedTransaction.PostedDate,
|
||||
plaidMetadata
|
||||
);
|
||||
|
||||
@@ -30,6 +30,9 @@ public class PlaidAddedTransactionHandlerTests : IntegrationTest
|
||||
|
||||
result.Should().Be(1);
|
||||
account.Transactions.Should().HaveCount(2);
|
||||
account.Transactions
|
||||
.Single(t => t.Metadata is PlaidTransactionMetadata m && m.PlaidId == transaction.TransactionId)
|
||||
.Amount.Should().Be(-transaction.Amount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -31,5 +31,6 @@ public class PlaidModifiedTransactionHandlerTests : IntegrationTest
|
||||
|
||||
result.Should().Be(1);
|
||||
existingTransaction.MerchantName.Should().Be(transaction.MerchantName);
|
||||
existingTransaction.Amount.Should().Be(-transaction.Amount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user