109 lines
3.3 KiB
TypeScript
109 lines
3.3 KiB
TypeScript
import { Page, Route, Request as PlaywrightRequest } from '@playwright/test';
|
|
|
|
import config from '../fixtures/config.json' assert { type: 'json' };
|
|
import namespaces from '../fixtures/namespaces.json' assert { type: 'json' };
|
|
import notebooks from '../fixtures/notebooks.json' assert { type: 'json' };
|
|
import poddefaults from '../fixtures/poddefaults.json' assert { type: 'json' };
|
|
|
|
|
|
export async function selectAllNamespaces(page: Page) {
|
|
console.log('Selecting all namespaces from the dropdown');
|
|
|
|
// Click and select 'All namespaces' option
|
|
await page.click('[data-cy-namespace-selector-dropdown]');
|
|
await page.click('[data-cy-all-namespaces]');
|
|
}
|
|
|
|
|
|
export async function mockDashboardRequest(page: Page) {
|
|
await page.route('/dashboard_lib.bundle.js', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ body: JSON.stringify([]) });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockNamespacesRequest(page: Page) {
|
|
await page.route('/api/namespaces', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: namespaces });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockNotebooksRequest(page: Page, namespace: string) {
|
|
await page.route(`/api/namespaces/${namespace}/notebooks`, async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: notebooks });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockNotebooksAllNamespacesRequest(page: Page, settingsNamespace: string) {
|
|
for (const namespace of namespaces.namespaces) {
|
|
if (namespace === settingsNamespace) {
|
|
continue;
|
|
}
|
|
await page.route(`/api/namespaces/${namespace}/notebooks`, async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: { notebooks: [] } });
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
export async function mockStorageClassesRequests(page: Page) {
|
|
await page.route('/api/storageclasses', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: { storageClasses: ['standard'] } });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockDefaultStorageClassRequest(page: Page, defaultStorageClass: string) {
|
|
await page.route('/api/storageclasses/default', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: { defaultStorageClass } });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockGpusRequest(page: Page) {
|
|
await page.route('/api/gpus', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({
|
|
json: {
|
|
status: 200,
|
|
success: true,
|
|
user: null,
|
|
vendors: [],
|
|
},
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockConfigRequest(page: Page) {
|
|
await page.route('/api/config', async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: config });
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export async function mockPoddefaultsRequest(page: Page, namespace: string) {
|
|
await page.route(`/api/namespaces/${namespace}/poddefaults`, async (route: Route, request: PlaywrightRequest) => {
|
|
if (request.method() === 'GET') {
|
|
await route.fulfill({ json: poddefaults });
|
|
}
|
|
});
|
|
}
|