mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-25 07:07:48 +01:00
* feat: add shortcuts for insert_query and update_query into `Database` example: await db.insert("table_name", base_model) * remove where from argument * chore: code clean-up * extension manager * lnbits-qrcode components * parse date from dict * refactor: make `settings` a fixture * chore: remove verbose key names * fix: time column * fix: cast balance to `int` * extension toggle vue3 * vue3 @input migration * fix: payment extra and payment hash * fix dynamic fields and ext db migration * remove shadow on cards in dark theme * screwed up and made more css pushes to this branch * attempt to make chip component in settings dynamic fields * dynamic chips * qrscanner * clean init admin settings * make get_user better * add dbversion model * remove update_payment_status/extra/details * traces for value and assertion errors * refactor services * add PaymentFiatAmount * return Payment on api endpoints * rename to get_user_from_account * refactor: just refactor (#2740) * rc5 * Fix db cache (#2741) * [refactor] split services.py (#2742) * refactor: spit `core.py` (#2743) * refactor: make QR more customizable * fix: print.html * fix: qrcode options * fix: white shadow on dark theme * fix: datetime wasnt parsed in dict_to_model * add timezone for conversion * only parse timestamp for sqlite, postgres does it * log internal payment success * fix: export wallet to phone QR * Adding a customisable border theme, like gradient (#2746) * fixed mobile scan btn * fix test websocket * fix get_payments tests * dict_to_model skip none values * preimage none instead of defaulting to 0000... * fixup test real invoice tests * fixed pheonixd for wss * fix nodemanager test settings * fix lnbits funding * only insert extension when they dont exist --------- Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com> Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com> Co-authored-by: Arc <ben@arc.wales> Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
75 lines
2 KiB
Python
75 lines
2 KiB
Python
import pytest
|
|
|
|
from lnbits.core.services import (
|
|
fee_reserve,
|
|
fee_reserve_total,
|
|
service_fee,
|
|
)
|
|
from lnbits.settings import Settings
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_fee_reserve_internal():
|
|
fee = fee_reserve(10_000, internal=True)
|
|
assert fee == 0
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_fee_reserve_min(settings: Settings):
|
|
settings.lnbits_reserve_fee_percent = 2
|
|
settings.lnbits_reserve_fee_min = 500
|
|
fee = fee_reserve(10000)
|
|
assert fee == 500
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_fee_reserve_percent(settings: Settings):
|
|
settings.lnbits_reserve_fee_percent = 1
|
|
settings.lnbits_reserve_fee_min = 100
|
|
fee = fee_reserve(100000)
|
|
assert fee == 1000
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_service_fee_no_wallet(settings: Settings):
|
|
settings.lnbits_service_fee_wallet = ""
|
|
fee = service_fee(10000)
|
|
assert fee == 0
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_service_fee_internal(settings: Settings):
|
|
settings.lnbits_service_fee_wallet = "wallet_id"
|
|
settings.lnbits_service_fee_ignore_internal = True
|
|
fee = service_fee(10000, internal=True)
|
|
assert fee == 0
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_service_fee(settings: Settings):
|
|
settings.lnbits_service_fee_wallet = "wallet_id"
|
|
settings.lnbits_service_fee = 2
|
|
fee = service_fee(10000)
|
|
assert fee == 200
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_service_fee_max(settings: Settings):
|
|
settings.lnbits_service_fee_wallet = "wallet_id"
|
|
settings.lnbits_service_fee = 2
|
|
settings.lnbits_service_fee_max = 199
|
|
fee = service_fee(100_000_000)
|
|
assert fee / 1000 == 199
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_fee_reserve_total(settings: Settings):
|
|
settings.lnbits_reserve_fee_percent = 1
|
|
settings.lnbits_reserve_fee_min = 100
|
|
settings.lnbits_service_fee = 2
|
|
settings.lnbits_service_fee_wallet = "wallet_id"
|
|
amount = 100_000
|
|
fee = service_fee(amount)
|
|
reserve = fee_reserve(amount)
|
|
total = fee_reserve_total(amount)
|
|
assert fee + reserve == total
|