61 lines
1.7 KiB
JavaScript
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])
|
|
})
|
|
}
|
|
})
|