Files
lndhub.go/lib/service/invoices_test.go
2023-09-25 14:01:38 +02:00

59 lines
1.2 KiB
Go

package service
import (
"testing"
"github.com/getAlby/lndhub.go/db/models"
"github.com/getAlby/lndhub.go/lnd"
"github.com/stretchr/testify/assert"
)
var svc = &LndhubService{
LndClient: &lnd.LNDWrapper{IdentityPubkey: "123pubkey"},
Config: &Config{
MaxFeeAmount: 1e6,
},
}
func TestCalcFeeWithInvoiceLessThan1000(t *testing.T) {
invoice := &models.Invoice{
Amount: 500,
}
feeLimit := svc.CalcFeeLimit("dummy", invoice.Amount)
expectedFee := int64(10)
assert.Equal(t, expectedFee, feeLimit)
}
func TestCalcFeeWithInvoiceEqualTo1000(t *testing.T) {
invoice := &models.Invoice{
Amount: 500,
}
feeLimit := svc.CalcFeeLimit("dummy", invoice.Amount)
expectedFee := int64(10)
assert.Equal(t, expectedFee, feeLimit)
}
func TestCalcFeeWithInvoiceMoreThan1000(t *testing.T) {
invoice := &models.Invoice{
Amount: 1500,
}
feeLimit := svc.CalcFeeLimit("dummy", invoice.Amount)
// 1500 * 0.01 + 1
expectedFee := int64(16)
assert.Equal(t, expectedFee, feeLimit)
}
func TestCalcFeeWithMaxGlobalFee(t *testing.T) {
invoice := &models.Invoice{
Amount: 1500,
}
svc.Config.MaxFeeAmount = 1
feeLimit := svc.CalcFeeLimit("dummy", invoice.Amount)
expectedFee := svc.Config.MaxFeeAmount
assert.Equal(t, expectedFee, feeLimit)
}