import { test } from '@playwright/test'; import { DashboardPage } from '../pages/Dashboard'; import setup from '../setup'; test.describe('Super user', () => { let dashboard: DashboardPage; let context: any; test.beforeEach(async ({ page }) => { context = await setup({ page }); dashboard = new DashboardPage(page, context.project); }); test('AppStore access', async () => { await dashboard.closeTab({ title: 'Team & Auth' }); await dashboard.rootPage.goto('/#/apps'); await dashboard.rootPage.waitForLoadState('load'); const appPage = await dashboard.rootPage; // Access slack card const card = await appPage.locator('.nc-app-store-card-Slack'); await card.click(); await card.locator('.nc-app-store-card-install').click(); // Configure slack let slackModal = await appPage.locator('.nc-modal-plugin-install'); await slackModal.locator('[placeholder="Channel Name"]').fill('Test Channel'); await slackModal.locator('[placeholder="Webhook URL"]').fill('http://test.com'); await slackModal.locator('button:has-text("Save")').click(); await dashboard.verifyToast({ message: 'Successfully installed' }); // Modify configuration await card.click(); await card.locator('.nc-app-store-card-edit').click(); slackModal = await appPage.locator('.nc-modal-plugin-install'); await slackModal.locator('[placeholder="Channel Name"]').fill('Test Channel 2'); await slackModal.locator('[placeholder="Webhook URL"]').fill('http://test2.com'); await slackModal.locator('button:has-text("Save")').click(); await dashboard.verifyToast({ message: 'Successfully installed' }); // Uninstall await card.click(); await card.locator('.nc-app-store-card-reset').click(); slackModal = await appPage.locator('.nc-modal-plugin-uninstall'); await slackModal.locator('button:has-text("Confirm")').click(); await dashboard.verifyToast({ message: 'Plugin uninstalled successfully' }); }); });