Files
lnbits/tests/integration/001_extensions-enable-all.spec.js
2026-07-16 10:40:28 +03:00

61 lines
1.7 KiB
JavaScript

const {
test,
expect,
setupIntegration,
state,
pageStatus,
uninstallExtension,
getAdminSession,
installLatestExtensionViaUi,
enableExtensionViaUi,
disableExtensionViaUi
} = require('./scenario-helpers')
setupIntegration()
test('001 extensions can be installed, enabled, disabled, and re-enabled', async ({
browser
}) => {
test.setTimeout(45 * 60 * 1000)
const admin = await getAdminSession(browser)
const excluded = new Set([
'discordbot',
'usermanager',
'lnurldevice',
'scheduler',
'deezy',
'nostrrelay',
'tpos',
'webpages'
])
const extensionIds = [...new Set([...state.extensionById.keys()])]
.filter(extension => !excluded.has(extension))
.sort()
expect(extensionIds.length).toBeGreaterThan(0)
for (const extension of extensionIds) {
await test.step(`uninstall ${extension}`, async () => {
await uninstallExtension(state.adminContext, extension)
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
})
}
for (const extension of extensionIds) {
await test.step(`install and toggle ${extension}`, async () => {
const installed = await installLatestExtensionViaUi(admin, extension)
if (!installed) {
return
}
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
await enableExtensionViaUi(admin, extension)
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
await disableExtensionViaUi(admin, extension)
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
await enableExtensionViaUi(admin, extension)
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
})
}
})