61 lines
1.6 KiB
JavaScript
61 lines
1.6 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',
|
|
'webpages'
|
|
])
|
|
const adminExtensions = new Set(['nostrclient'])
|
|
const extensionIds = [...new Set([...state.extensionById.keys()])]
|
|
.filter(extension => !excluded.has(extension))
|
|
.sort()
|
|
|
|
expect(extensionIds.length).toBeGreaterThan(0)
|
|
|
|
for (const extension of extensionIds) {
|
|
await uninstallExtension(state.adminContext, extension)
|
|
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
|
|
}
|
|
|
|
for (const extension of extensionIds) {
|
|
await installLatestExtensionViaUi(admin, extension)
|
|
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
|
|
await enableExtensionViaUi(admin, extension)
|
|
await pageStatus(
|
|
state.adminContext,
|
|
`/${extension}`,
|
|
adminExtensions.has(extension) ? [200, 403] : 200
|
|
)
|
|
await disableExtensionViaUi(admin, extension)
|
|
await pageStatus(state.adminContext, `/${extension}`, [200, 403, 404])
|
|
await enableExtensionViaUi(admin, extension)
|
|
await pageStatus(
|
|
state.adminContext,
|
|
`/${extension}`,
|
|
adminExtensions.has(extension) ? [200, 403] : 200
|
|
)
|
|
}
|
|
})
|