You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.1 KiB
120 lines
4.1 KiB
import {expect, test} from '@playwright/test';
|
|
import {globalDataRequests, mockApi, responseFixtures, updatedSettingsResponse} from '@tryghost/admin-x-framework/test/acceptance';
|
|
|
|
test.describe('Network settings', async () => {
|
|
test('Network toggle is disabled if the feature is disabled by config', async ({page}) => {
|
|
await mockApi({page, requests: {
|
|
...globalDataRequests,
|
|
browseConfig: {
|
|
...globalDataRequests.browseConfig,
|
|
response: {
|
|
config: {
|
|
...responseFixtures.config.config,
|
|
hostSettings: {
|
|
limits: {
|
|
limitSocialWeb: {
|
|
disabled: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}});
|
|
|
|
await page.goto('/');
|
|
|
|
const section = page.getByTestId('network');
|
|
const toggle = section.getByRole('switch');
|
|
|
|
// Toggle should be unchecked and disabled
|
|
await expect(toggle).not.toBeChecked();
|
|
await expect(toggle).toBeDisabled();
|
|
|
|
// Should show disabled message
|
|
await expect(section.getByText('You need to configure a supported custom domain to use this feature.')).toBeVisible();
|
|
});
|
|
|
|
test('Network toggle can be turned off', async ({page}) => {
|
|
const {lastApiRequests} = await mockApi({page, requests: {
|
|
...globalDataRequests,
|
|
browseSettings: {
|
|
...globalDataRequests.browseSettings,
|
|
response: {
|
|
...responseFixtures.settings,
|
|
settings: [
|
|
...responseFixtures.settings.settings,
|
|
{key: 'social_web', value: true}
|
|
]
|
|
}
|
|
},
|
|
editSettings: {method: 'PUT', path: '/settings/', response: updatedSettingsResponse([
|
|
{key: 'social_web', value: false}
|
|
])}
|
|
}});
|
|
|
|
await page.goto('/');
|
|
|
|
const section = page.getByTestId('network');
|
|
const toggle = section.getByRole('switch');
|
|
|
|
// Toggle should be checked and enabled
|
|
await expect(toggle).toBeChecked();
|
|
await expect(toggle).toBeEnabled();
|
|
|
|
// Should not show disabled message
|
|
await expect(section.getByText('You need to configure a supported custom domain to use this feature.')).not.toBeVisible();
|
|
|
|
// Toggle off
|
|
await toggle.click();
|
|
|
|
// Verify API call
|
|
expect(lastApiRequests.editSettings?.body).toEqual({
|
|
settings: [
|
|
{key: 'social_web', value: false}
|
|
]
|
|
});
|
|
});
|
|
|
|
test('Network toggle can be turned on', async ({page}) => {
|
|
const {lastApiRequests} = await mockApi({page, requests: {
|
|
...globalDataRequests,
|
|
browseSettings: {
|
|
...globalDataRequests.browseSettings,
|
|
response: {
|
|
...responseFixtures.settings,
|
|
settings: [
|
|
...responseFixtures.settings.settings,
|
|
{key: 'social_web', value: false}
|
|
]
|
|
}
|
|
},
|
|
editSettings: {method: 'PUT', path: '/settings/', response: updatedSettingsResponse([
|
|
{key: 'social_web', value: true}
|
|
])}
|
|
}});
|
|
|
|
await page.goto('/');
|
|
|
|
const section = page.getByTestId('network');
|
|
const toggle = section.getByRole('switch');
|
|
|
|
// Toggle should be unchecked but enabled
|
|
await expect(toggle).not.toBeChecked();
|
|
await expect(toggle).toBeEnabled();
|
|
|
|
// Should not show disabled message
|
|
await expect(section.getByText('You need to configure a supported custom domain to use this feature.')).not.toBeVisible();
|
|
|
|
// Toggle on
|
|
await toggle.click();
|
|
|
|
// Verify API call
|
|
expect(lastApiRequests.editSettings?.body).toEqual({
|
|
settings: [
|
|
{key: 'social_web', value: true}
|
|
]
|
|
});
|
|
});
|
|
});
|