diff --git a/integration_tests/internal_payment_test.go b/integration_tests/internal_payment_test.go index d454552..3d117fa 100644 --- a/integration_tests/internal_payment_test.go +++ b/integration_tests/internal_payment_test.go @@ -176,7 +176,6 @@ func (suite *PaymentTestSuite) TestInternalPayment() { assert.Equal(suite.T(), 2, len(transactionEntriesAlice)) assert.Equal(suite.T(), int64(aliceFundingSats), transactionEntriesAlice[0].Amount) assert.Equal(suite.T(), int64(bobSatRequested), transactionEntriesAlice[1].Amount) - assert.Equal(suite.T(), transactionEntriesAlice[1].ID, transactionEntriesAlice[2].ParentID) assert.Equal(suite.T(), int64(aliceFundingSats-bobSatRequested-fee), aliceBalance) bobBalance, _ := suite.service.CurrentUserBalance(context.Background(), bobId) diff --git a/integration_tests/outgoing_payment_test.go b/integration_tests/outgoing_payment_test.go index 61afe51..f1fd8a6 100644 --- a/integration_tests/outgoing_payment_test.go +++ b/integration_tests/outgoing_payment_test.go @@ -63,7 +63,7 @@ func (suite *PaymentTestSuite) TestOutGoingPayment() { assert.Equal(suite.T(), 1, len(outgoingInvoices)) assert.Equal(suite.T(), 1, len(incomingInvoices)) - assert.Equal(suite.T(), 3, len(transactonEntries)) + assert.Equal(suite.T(), 5, len(transactonEntries)) assert.Equal(suite.T(), int64(aliceFundingSats), transactonEntries[0].Amount) assert.Equal(suite.T(), currentAccount.ID, transactonEntries[0].CreditAccountID) @@ -77,13 +77,13 @@ func (suite *PaymentTestSuite) TestOutGoingPayment() { assert.Equal(suite.T(), int64(0), transactonEntries[1].ParentID) assert.Equal(suite.T(), outgoingInvoices[0].ID, transactonEntries[1].InvoiceID) - assert.Equal(suite.T(), int64(suite.mlnd.fee), transactonEntries[2].Amount) + assert.Equal(suite.T(), int64(suite.mlnd.fee), transactonEntries[4].Amount) assert.Equal(suite.T(), feeAccount.ID, transactonEntries[2].CreditAccountID) assert.Equal(suite.T(), currentAccount.ID, transactonEntries[2].DebitAccountID) assert.Equal(suite.T(), outgoingInvoices[0].ID, transactonEntries[2].InvoiceID) // make sure fee entry parent id is previous entry - assert.Equal(suite.T(), transactonEntries[1].ID, transactonEntries[2].ParentID) + assert.Equal(suite.T(), transactonEntries[1].ID, transactonEntries[4].ParentID) //fetch transactions, make sure the fee is there // check invoices again @@ -134,7 +134,7 @@ func (suite *PaymentTestSuite) TestOutGoingPaymentWithNegativeBalance() { assert.Equal(suite.T(), int64(-1), aliceBalance) // check that no additional transaction entry was created - transactonEntries, err := suite.service.TransactionEntriesFor(context.Background(), userId) + transactionEntries, err := suite.service.TransactionEntriesFor(context.Background(), userId) if err != nil { fmt.Printf("Error when getting transaction entries %v\n", err.Error()) } @@ -149,27 +149,27 @@ func (suite *PaymentTestSuite) TestOutGoingPaymentWithNegativeBalance() { assert.Equal(suite.T(), 1, len(outgoingInvoices)) assert.Equal(suite.T(), 1, len(incomingInvoices)) - assert.Equal(suite.T(), 3, len(transactonEntries)) + assert.Equal(suite.T(), 5, len(transactionEntries)) - assert.Equal(suite.T(), int64(aliceFundingSats), transactonEntries[0].Amount) - assert.Equal(suite.T(), currentAccount.ID, transactonEntries[0].CreditAccountID) - assert.Equal(suite.T(), incomingAccount.ID, transactonEntries[0].DebitAccountID) - assert.Equal(suite.T(), int64(0), transactonEntries[0].ParentID) - assert.Equal(suite.T(), incomingInvoices[0].ID, transactonEntries[0].InvoiceID) + assert.Equal(suite.T(), int64(aliceFundingSats), transactionEntries[0].Amount) + assert.Equal(suite.T(), currentAccount.ID, transactionEntries[0].CreditAccountID) + assert.Equal(suite.T(), incomingAccount.ID, transactionEntries[0].DebitAccountID) + assert.Equal(suite.T(), int64(0), transactionEntries[0].ParentID) + assert.Equal(suite.T(), incomingInvoices[0].ID, transactionEntries[0].InvoiceID) - assert.Equal(suite.T(), int64(externalSatRequested), transactonEntries[1].Amount) - assert.Equal(suite.T(), outgoingAccount.ID, transactonEntries[1].CreditAccountID) - assert.Equal(suite.T(), currentAccount.ID, transactonEntries[1].DebitAccountID) - assert.Equal(suite.T(), int64(0), transactonEntries[1].ParentID) - assert.Equal(suite.T(), outgoingInvoices[0].ID, transactonEntries[1].InvoiceID) + assert.Equal(suite.T(), int64(externalSatRequested), transactionEntries[1].Amount) + assert.Equal(suite.T(), outgoingAccount.ID, transactionEntries[1].CreditAccountID) + assert.Equal(suite.T(), currentAccount.ID, transactionEntries[1].DebitAccountID) + assert.Equal(suite.T(), int64(0), transactionEntries[1].ParentID) + assert.Equal(suite.T(), outgoingInvoices[0].ID, transactionEntries[1].InvoiceID) - assert.Equal(suite.T(), int64(suite.mlnd.fee), transactonEntries[2].Amount) - assert.Equal(suite.T(), feeAccount.ID, transactonEntries[2].CreditAccountID) - assert.Equal(suite.T(), currentAccount.ID, transactonEntries[2].DebitAccountID) - assert.Equal(suite.T(), outgoingInvoices[0].ID, transactonEntries[2].InvoiceID) + assert.Equal(suite.T(), int64(suite.mlnd.fee), transactionEntries[4].Amount) + assert.Equal(suite.T(), feeAccount.ID, transactionEntries[2].CreditAccountID) + assert.Equal(suite.T(), currentAccount.ID, transactionEntries[2].DebitAccountID) + assert.Equal(suite.T(), outgoingInvoices[0].ID, transactionEntries[2].InvoiceID) // make sure fee entry parent id is previous entry - assert.Equal(suite.T(), transactonEntries[1].ID, transactonEntries[2].ParentID) + assert.Equal(suite.T(), transactionEntries[1].ID, transactionEntries[4].ParentID) } func (suite *PaymentTestSuite) TestZeroAmountInvoice() { diff --git a/integration_tests/payment_failure_async_test.go b/integration_tests/payment_failure_async_test.go index 7f29ae8..22a6860 100644 --- a/integration_tests/payment_failure_async_test.go +++ b/integration_tests/payment_failure_async_test.go @@ -105,7 +105,8 @@ func (suite *PaymentTestAsyncErrorsSuite) TestExternalAsyncFailingInvoice() { if err != nil { fmt.Printf("Error when getting balance %v\n", err.Error()) } - assert.Equal(suite.T(), int64(userFundingSats-externalSatRequested), userBalance) + feeReserve := suite.service.CalcFeeLimit(suite.externalLND.GetMainPubkey(), int64(externalSatRequested)) + assert.Equal(suite.T(), int64(userFundingSats-externalSatRequested)-feeReserve, userBalance) // fail payment and wait a bit suite.serviceClient.FailPayment(SendPaymentMockError) @@ -126,16 +127,16 @@ func (suite *PaymentTestAsyncErrorsSuite) TestExternalAsyncFailingInvoice() { assert.Equal(suite.T(), common.InvoiceStateError, invoices[0].State) assert.Equal(suite.T(), SendPaymentMockError, invoices[0].ErrorMessage) - transactonEntries, err := suite.service.TransactionEntriesFor(context.Background(), userId) + transactionEntries, err := suite.service.TransactionEntriesFor(context.Background(), userId) if err != nil { fmt.Printf("Error when getting transaction entries %v\n", err.Error()) } - // check if there are 3 transaction entries, with reversed credit and debit account ids - assert.Equal(suite.T(), 3, len(transactonEntries)) - assert.Equal(suite.T(), transactonEntries[1].CreditAccountID, transactonEntries[2].DebitAccountID) - assert.Equal(suite.T(), transactonEntries[1].DebitAccountID, transactonEntries[2].CreditAccountID) - assert.Equal(suite.T(), transactonEntries[1].Amount, int64(externalSatRequested)) - assert.Equal(suite.T(), transactonEntries[2].Amount, int64(externalSatRequested)) + // check if there are 5 transaction entries, with reversed credit and debit account ids + assert.Equal(suite.T(), 5, len(transactionEntries)) + assert.Equal(suite.T(), transactionEntries[1].CreditAccountID, transactionEntries[2].DebitAccountID) + assert.Equal(suite.T(), transactionEntries[1].DebitAccountID, transactionEntries[2].CreditAccountID) + assert.Equal(suite.T(), transactionEntries[1].Amount, int64(externalSatRequested)) + assert.Equal(suite.T(), transactionEntries[2].Amount, int64(externalSatRequested)) } func (suite *PaymentTestAsyncErrorsSuite) TearDownSuite() {