Files
lnbits/tests/integration/004_tpos-pay-to-enable.spec.js
T
2026-07-16 07:13:39 +03:00

59 lines
1.7 KiB
JavaScript

const {
test,
expect,
setupIntegration,
state,
jsonRequest,
latestRelease,
pageStatus,
topUpWallet,
newUserWithUi,
getAdminSession,
ensureExtensionsInstalledViaUi,
enableExtensionViaUi,
disableExtensionViaUi,
payToEnableExtensionViaUi
} = require('./scenario-helpers')
setupIntegration()
test('004 tpos pay-to-enable flow', async ({browser}) => {
test.setTimeout(5 * 60 * 1000)
const admin = await getAdminSession(browser)
await ensureExtensionsInstalledViaUi(admin, ['tpos'])
const user = await newUserWithUi(browser, 'pay-to-enable')
await topUpWallet(state.adminContext, user.walletId, 1000)
const release = await latestRelease(state.adminContext, 'tpos')
expect(release.version).toBeTruthy()
await enableExtensionViaUi(admin, 'tpos')
await jsonRequest(state.adminContext, 'put', '/api/v1/extension/tpos/sell', {
data: {required: true, amount: 21, wallet: state.adminWallet.walletId}
})
await pageStatus(state.adminContext, '/tpos')
await pageStatus(user.context, '/tpos', [200, 402, 403])
const lowInvoice = await jsonRequest(
user.context,
'put',
'/api/v1/extension/tpos/invoice/enable',
{data: {amount: 1}, expected: 400}
)
expect(JSON.stringify(lowInvoice)).toContain('21')
await jsonRequest(user.context, 'put', '/api/v1/extension/tpos/enable', {
expected: 402
})
await payToEnableExtensionViaUi(user, 'tpos')
await pageStatus(user.context, '/tpos')
await disableExtensionViaUi(user, 'tpos')
await enableExtensionViaUi(user, 'tpos')
await pageStatus(user.context, '/tpos')
await jsonRequest(state.adminContext, 'put', '/api/v1/extension/tpos/sell', {
data: {required: false, amount: 0, wallet: state.adminWallet.walletId}
})
})