mirror of
https://github.com/lnbits/lnbits.git
synced 2025-08-08 09:11:56 +02:00
* feat: add payment tab * feat: add buttons * feat: persist `pay to enable` changes * fix: do not disable extension on upgrade * fix: show releases tab first * feat: extract `enableExtension` logic * refactor: rename routes * feat: show dialog for paying extension * feat: create invoice to enable * refactor: extract enable/disable extension logic * feat: add extra info to UserExtensions * feat: check payment for extension enable * fix: parsing * feat: admins must not pay * fix: code checks * fix: test * refactor: extract extension activate/deactivate to the `api` side * feat: add `get_user_extensions ` * feat: return explicit `requiresPayment` * feat: add `isPaymentRequired` to extension list * fix: `paid_to_enable` status * fix: ui layout * feat: show QR Code * feat: wait for invoice to be paid * test: removed deprecated test and dead code * feat: add re-check button * refactor: rename paths for endpoints * feat: i18n * feat: add `{"success": True}` * test: fix listener * fix: rebase errors * chore: update bundle * fix: return error status code for the HTML error pages * fix: active extension loading from file system * chore: temp commit * fix: premature optimisation * chore: make check * refactor: remove extracted logic * chore: code format * fix: enable by default after install * fix: use `discard` instead of `remove` for `set` * chore: code format * fix: better error code * fix: check for stop function before invoking * feat: check if the wallet belongs to the admin user * refactor: return 402 Requires Payment * chore: more typing * chore: temp checkout different branch for tests * fix: too much typing * fix: remove try-except * fix: typo * fix: manual format * fix: merge issue * remove this line --------- Co-authored-by: dni ⚡ <office@dnilabs.com>
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_core_views_generic(client):
|
|
response = await client.get("/")
|
|
assert response.status_code == 200, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /wallet: wrong user, expect 400
|
|
@pytest.mark.asyncio
|
|
async def test_get_wallet_with_nonexistent_user(client):
|
|
response = await client.get("wallet", params={"usr": "1"})
|
|
assert response.status_code == 400, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /wallet: wallet and user
|
|
@pytest.mark.asyncio
|
|
async def test_get_wallet_with_user_and_wallet(client, to_user, to_wallet):
|
|
response = await client.get(
|
|
"wallet", params={"usr": to_user.id, "wal": to_wallet.id}
|
|
)
|
|
assert response.status_code == 200, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /wallet: wrong wallet and user, expect 400
|
|
@pytest.mark.asyncio
|
|
async def test_get_wallet_with_user_and_wrong_wallet(client, to_user):
|
|
response = await client.get("wallet", params={"usr": to_user.id, "wal": "1"})
|
|
assert response.status_code == 400, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /extensions: extensions list
|
|
@pytest.mark.asyncio
|
|
async def test_get_extensions(client, to_user):
|
|
response = await client.get("extensions", params={"usr": to_user.id})
|
|
assert response.status_code == 200, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /extensions: extensions list wrong user, expect 400
|
|
@pytest.mark.asyncio
|
|
async def test_get_extensions_wrong_user(client):
|
|
response = await client.get("extensions", params={"usr": "1"})
|
|
assert response.status_code == 400, f"{response.url} {response.status_code}"
|
|
|
|
|
|
# check GET /extensions: no user given, expect code 400 bad request
|
|
@pytest.mark.asyncio
|
|
async def test_get_extensions_no_user(client):
|
|
response = await client.get("extensions")
|
|
# bad request
|
|
assert response.status_code == 401, f"{response.url} {response.status_code}"
|