lookup_transaction_test.go raw
1 package transactions
2
3 import (
4 "context"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 "github.com/stretchr/testify/require"
9
10 "github.com/getAlby/hub/constants"
11 "github.com/getAlby/hub/db"
12 "github.com/getAlby/hub/tests"
13 )
14
15 func TestLookupTransaction_IncomingPayment(t *testing.T) {
16 ctx := context.TODO()
17
18 svc, err := tests.CreateTestService(t)
19 require.NoError(t, err)
20 defer svc.Remove()
21
22 mockPreimage := tests.MockLNClientTransaction.Preimage
23 svc.DB.Create(&db.Transaction{
24 State: constants.TRANSACTION_STATE_PENDING,
25 Type: constants.TRANSACTION_TYPE_INCOMING,
26 PaymentRequest: tests.MockLNClientTransaction.Invoice,
27 PaymentHash: tests.MockLNClientTransaction.PaymentHash,
28 Preimage: &mockPreimage,
29 AmountMsat: 123000,
30 })
31
32 transactionsService := NewTransactionsService(svc.DB, svc.EventPublisher)
33
34 incomingTransaction, err := transactionsService.LookupTransaction(ctx, tests.MockLNClientTransaction.PaymentHash, nil, svc.LNClient, nil)
35 assert.NoError(t, err)
36 assert.Equal(t, uint64(123000), incomingTransaction.AmountMsat)
37 assert.Equal(t, constants.TRANSACTION_STATE_PENDING, incomingTransaction.State)
38 assert.Equal(t, tests.MockLNClientTransaction.Preimage, *incomingTransaction.Preimage)
39 assert.Zero(t, incomingTransaction.FeeReserveMsat)
40 }
41
42 func TestLookupTransaction_OutgoingPayment(t *testing.T) {
43 ctx := context.TODO()
44
45 svc, err := tests.CreateTestService(t)
46 require.NoError(t, err)
47 defer svc.Remove()
48
49 mockPreimage := tests.MockLNClientTransaction.Preimage
50 svc.DB.Create(&db.Transaction{
51 State: constants.TRANSACTION_STATE_PENDING,
52 Type: constants.TRANSACTION_TYPE_OUTGOING,
53 PaymentRequest: tests.MockLNClientTransaction.Invoice,
54 PaymentHash: tests.MockLNClientTransaction.PaymentHash,
55 Preimage: &mockPreimage,
56 AmountMsat: 123000,
57 })
58
59 transactionsService := NewTransactionsService(svc.DB, svc.EventPublisher)
60
61 outgoingTransaction, err := transactionsService.LookupTransaction(ctx, tests.MockLNClientTransaction.PaymentHash, nil, svc.LNClient, nil)
62 assert.NoError(t, err)
63 assert.Equal(t, uint64(123000), outgoingTransaction.AmountMsat)
64 assert.Equal(t, constants.TRANSACTION_STATE_PENDING, outgoingTransaction.State)
65 assert.Equal(t, tests.MockLNClientTransaction.Preimage, *outgoingTransaction.Preimage)
66 assert.Zero(t, outgoingTransaction.FeeReserveMsat)
67 }
68