mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2024-11-19 09:54:21 +01:00
1e752dc3d2
* test: services create and pay invoice * add more tests * check with fundingsource * check status
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import pytest
|
|
from bolt11 import decode
|
|
|
|
from lnbits.core.services import (
|
|
PaymentStatus,
|
|
create_invoice,
|
|
)
|
|
from lnbits.wallets import get_funding_source
|
|
|
|
description = "test create invoice"
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_create_invoice(from_wallet):
|
|
payment_hash, pr = await create_invoice(
|
|
wallet_id=from_wallet.id,
|
|
amount=1000,
|
|
memo=description,
|
|
)
|
|
invoice = decode(pr)
|
|
assert invoice.payment_hash == payment_hash
|
|
assert invoice.amount_msat == 1000000
|
|
assert invoice.description == description
|
|
|
|
funding_source = get_funding_source()
|
|
status = await funding_source.get_invoice_status(payment_hash)
|
|
assert isinstance(status, PaymentStatus)
|
|
assert status.pending
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_create_internal_invoice(from_wallet):
|
|
payment_hash, pr = await create_invoice(
|
|
wallet_id=from_wallet.id, amount=1000, memo=description, internal=True
|
|
)
|
|
invoice = decode(pr)
|
|
assert invoice.payment_hash == payment_hash
|
|
assert invoice.amount_msat == 1000000
|
|
assert invoice.description == description
|
|
|
|
# Internal invoices are not on fundingsource. so we should get some kind of error
|
|
# that the invoice is not found, but we get status pending
|
|
funding_source = get_funding_source()
|
|
status = await funding_source.get_invoice_status(payment_hash)
|
|
assert isinstance(status, PaymentStatus)
|
|
assert status.pending
|