mirror of
https://github.com/getAlby/lndhub.go.git
synced 2025-12-19 05:35:16 +01:00
59 lines
1.2 KiB
Go
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)
|
|
}
|