mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
ref https://www.notion.so/AdminX-testing-plan-99b2dab27e794fc893767ccd01c84a63?d=26612fc2b9d84e65bbb269fa3bc5079e&pvs=4#f0089cd4d9f24e93bd7f8e2868987bf6 This pull request renames the end-to-end tests to acceptance tests in the `apps/admin-x-settings` folder. It updates the `ci.yml` file, the `package.json` file, the `playwright.config.ts` file, and the test files to reflect the new naming convention. This change aims to better reflect the purpose and scope of the tests.
68 lines
3.1 KiB
TypeScript
68 lines
3.1 KiB
TypeScript
import {expect, test} from '@playwright/test';
|
|
import {globalDataRequests, mockApi, updatedSettingsResponse} from '../../../utils/acceptance';
|
|
|
|
test.describe('Slack integration', async () => {
|
|
test('Supports updating Slack settings', async ({page}) => {
|
|
const {lastApiRequests} = await mockApi({page, requests: {
|
|
...globalDataRequests,
|
|
editSettings: {method: 'PUT', path: '/settings/', response: updatedSettingsResponse([
|
|
{key: 'slack_url', value: 'https://hooks.slack.com/services/123456789/123456789/123456789'},
|
|
{key: 'slack_username', value: 'My site'}
|
|
])}
|
|
}});
|
|
|
|
await page.goto('/');
|
|
const section = page.getByTestId('integrations');
|
|
const slackElement = section.getByText('Slack').last();
|
|
await slackElement.hover();
|
|
await section.getByRole('button', {name: 'Configure'}).click();
|
|
|
|
const slackModal = page.getByTestId('slack-modal');
|
|
|
|
await slackModal.getByLabel('Webhook URL').fill('https://hooks.slack.com/services/123456789/123456789/123456789');
|
|
await slackModal.getByLabel('Username').fill('My site');
|
|
await slackModal.getByRole('button', {name: 'Save & close'}).click();
|
|
|
|
await expect(slackModal).toHaveCount(0);
|
|
|
|
expect(lastApiRequests.editSettings?.body).toEqual({
|
|
settings: [
|
|
{key: 'slack_url', value: 'https://hooks.slack.com/services/123456789/123456789/123456789'},
|
|
{key: 'slack_username', value: 'My site'}
|
|
]
|
|
});
|
|
});
|
|
|
|
test('Supports testing Slack messages', async ({page}) => {
|
|
const {lastApiRequests} = await mockApi({page, requests: {
|
|
...globalDataRequests,
|
|
editSettings: {method: 'PUT', path: '/settings/', response: updatedSettingsResponse([
|
|
{key: 'slack_url', value: 'https://hooks.slack.com/services/123456789/123456789/123456789'},
|
|
{key: 'slack_username', value: 'My site'}
|
|
])},
|
|
testSlack: {method: 'POST', path: '/slack/test/', responseStatus: 204, response: ''}
|
|
}});
|
|
|
|
await page.goto('/');
|
|
const section = page.getByTestId('integrations');
|
|
const slackElement = section.getByText('Slack').last();
|
|
await slackElement.hover();
|
|
await section.getByRole('button', {name: 'Configure'}).click();
|
|
|
|
const slackModal = page.getByTestId('slack-modal');
|
|
|
|
await slackModal.getByLabel('Webhook URL').fill('https://hooks.slack.com/services/123456789/123456789/123456789');
|
|
await slackModal.getByLabel('Username').fill('My site');
|
|
await slackModal.getByRole('button', {name: 'Send test notification'}).click();
|
|
|
|
await expect(page.getByTestId('toast-neutral')).toHaveText(/Check your Slack channel for the test message/);
|
|
|
|
expect(lastApiRequests.editSettings?.body).toEqual({
|
|
settings: [
|
|
{key: 'slack_url', value: 'https://hooks.slack.com/services/123456789/123456789/123456789'},
|
|
{key: 'slack_username', value: 'My site'}
|
|
]
|
|
});
|
|
expect(lastApiRequests.testSlack).toBeTruthy();
|
|
});
|
|
});
|