♻️(e2e) improve config testcases
Improve config testcases: - let THEME_CUSTOMIZATION_FILE_PATH to be set to check the default value - add helper function overrideConfig
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
# For the CI job test-e2e
|
# For the CI job test-e2e
|
||||||
SUSTAINED_THROTTLE_RATES="200/hour"
|
|
||||||
BURST_THROTTLE_RATES="200/minute"
|
BURST_THROTTLE_RATES="200/minute"
|
||||||
DJANGO_SERVER_TO_SERVER_API_TOKENS=test-e2e
|
DJANGO_SERVER_TO_SERVER_API_TOKENS=test-e2e
|
||||||
|
SUSTAINED_THROTTLE_RATES="200/hour"
|
||||||
Y_PROVIDER_API_KEY=yprovider-api-key
|
Y_PROVIDER_API_KEY=yprovider-api-key
|
||||||
Y_PROVIDER_API_BASE_URL=http://y-provider:4444/api/
|
Y_PROVIDER_API_BASE_URL=http://y-provider:4444/api/
|
||||||
THEME_CUSTOMIZATION_FILE_PATH="" #force theme_customization to be empty
|
|
||||||
@@ -22,6 +22,24 @@ export const CONFIG = {
|
|||||||
theme_customization: {},
|
theme_customization: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const overrideConfig = async (
|
||||||
|
page: Page,
|
||||||
|
newConfig: { [K in keyof typeof CONFIG]?: unknown },
|
||||||
|
) =>
|
||||||
|
await page.route('**/api/v1.0/config/', async (route) => {
|
||||||
|
const request = route.request();
|
||||||
|
if (request.method().includes('GET')) {
|
||||||
|
await route.fulfill({
|
||||||
|
json: {
|
||||||
|
...CONFIG,
|
||||||
|
...newConfig,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await route.continue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
export const keyCloakSignIn = async (
|
export const keyCloakSignIn = async (
|
||||||
page: Page,
|
page: Page,
|
||||||
browserName: string,
|
browserName: string,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import path from 'path';
|
|||||||
|
|
||||||
import { expect, test } from '@playwright/test';
|
import { expect, test } from '@playwright/test';
|
||||||
|
|
||||||
import { CONFIG, createDoc } from './common';
|
import { CONFIG, createDoc, overrideConfig } from './common';
|
||||||
|
|
||||||
test.describe('Config', () => {
|
test.describe('Config', () => {
|
||||||
test('it checks the config api is called', async ({ page }) => {
|
test('it checks the config api is called', async ({ page }) => {
|
||||||
@@ -16,24 +16,19 @@ test.describe('Config', () => {
|
|||||||
const response = await responsePromise;
|
const response = await responsePromise;
|
||||||
expect(response.ok()).toBeTruthy();
|
expect(response.ok()).toBeTruthy();
|
||||||
|
|
||||||
expect(await response.json()).toStrictEqual(CONFIG);
|
const json = (await response.json()) as typeof CONFIG;
|
||||||
|
const { theme_customization, ...configApi } = json;
|
||||||
|
expect(theme_customization).toBeDefined();
|
||||||
|
const { theme_customization: _, ...CONFIG_LEFT } = CONFIG;
|
||||||
|
|
||||||
|
expect(configApi).toStrictEqual(CONFIG_LEFT);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('it checks that sentry is trying to init from config endpoint', async ({
|
test('it checks that sentry is trying to init from config endpoint', async ({
|
||||||
page,
|
page,
|
||||||
}) => {
|
}) => {
|
||||||
await page.route('**/api/v1.0/config/', async (route) => {
|
await overrideConfig(page, {
|
||||||
const request = route.request();
|
SENTRY_DSN: 'https://sentry.io/123',
|
||||||
if (request.method().includes('GET')) {
|
|
||||||
await route.fulfill({
|
|
||||||
json: {
|
|
||||||
...CONFIG,
|
|
||||||
SENTRY_DSN: 'https://sentry.io/123',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await route.continue();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const invalidMsg = 'Invalid Sentry Dsn: https://sentry.io/123';
|
const invalidMsg = 'Invalid Sentry Dsn: https://sentry.io/123';
|
||||||
@@ -98,18 +93,8 @@ test.describe('Config', () => {
|
|||||||
page,
|
page,
|
||||||
browserName,
|
browserName,
|
||||||
}) => {
|
}) => {
|
||||||
await page.route('**/api/v1.0/config/', async (route) => {
|
await overrideConfig(page, {
|
||||||
const request = route.request();
|
AI_FEATURE_ENABLED: false,
|
||||||
if (request.method().includes('GET')) {
|
|
||||||
await route.fulfill({
|
|
||||||
json: {
|
|
||||||
...CONFIG,
|
|
||||||
AI_FEATURE_ENABLED: false,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await route.continue();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
@@ -129,18 +114,8 @@ test.describe('Config', () => {
|
|||||||
test('it checks that Crisp is trying to init from config endpoint', async ({
|
test('it checks that Crisp is trying to init from config endpoint', async ({
|
||||||
page,
|
page,
|
||||||
}) => {
|
}) => {
|
||||||
await page.route('**/api/v1.0/config/', async (route) => {
|
await overrideConfig(page, {
|
||||||
const request = route.request();
|
CRISP_WEBSITE_ID: '1234',
|
||||||
if (request.method().includes('GET')) {
|
|
||||||
await route.fulfill({
|
|
||||||
json: {
|
|
||||||
...CONFIG,
|
|
||||||
CRISP_WEBSITE_ID: '1234',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await route.continue();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
@@ -151,18 +126,8 @@ test.describe('Config', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('it checks FRONTEND_CSS_URL config', async ({ page }) => {
|
test('it checks FRONTEND_CSS_URL config', async ({ page }) => {
|
||||||
await page.route('**/api/v1.0/config/', async (route) => {
|
await overrideConfig(page, {
|
||||||
const request = route.request();
|
FRONTEND_CSS_URL: 'http://localhost:123465/css/style.css',
|
||||||
if (request.method().includes('GET')) {
|
|
||||||
await route.fulfill({
|
|
||||||
json: {
|
|
||||||
...CONFIG,
|
|
||||||
FRONTEND_CSS_URL: 'http://localhost:123465/css/style.css',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await route.continue();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { expect, test } from '@playwright/test';
|
import { expect, test } from '@playwright/test';
|
||||||
|
|
||||||
import { CONFIG } from './common';
|
import { overrideConfig } from './common';
|
||||||
|
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
await page.goto('/docs/');
|
await page.goto('/docs/');
|
||||||
@@ -54,18 +54,8 @@ test.describe('Home page', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('it checks the homepage feature flag', async ({ page }) => {
|
test('it checks the homepage feature flag', async ({ page }) => {
|
||||||
await page.route('**/api/v1.0/config/', async (route) => {
|
await overrideConfig(page, {
|
||||||
const request = route.request();
|
FRONTEND_HOMEPAGE_FEATURE_ENABLED: false,
|
||||||
if (request.method().includes('GET')) {
|
|
||||||
await route.fulfill({
|
|
||||||
json: {
|
|
||||||
...CONFIG,
|
|
||||||
FRONTEND_HOMEPAGE_FEATURE_ENABLED: false,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
await route.continue();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
|
|||||||
Reference in New Issue
Block a user