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