119 lines
3.0 KiB
TypeScript
119 lines
3.0 KiB
TypeScript
|
import { Page, test, expect } from '@playwright/test';
|
||
|
import { loginApi } from '../fixtures/common';
|
||
|
import ROUTES from 'constants/routes';
|
||
|
import queryRangeSuccessResponse from '../fixtures/api/traces/queryRange200.json';
|
||
|
import tracesSuccessResponse from '../fixtures/api/traces/tracesRange200.json';
|
||
|
import tracesTableSuccessResponse from '../fixtures/api/traces/tracesTableView200.json';
|
||
|
import {
|
||
|
defaultAttributeKeysData,
|
||
|
httpMethodAttributeID,
|
||
|
newExplorerCtaID,
|
||
|
queryRangeApiEndpoint,
|
||
|
saveNewViewID,
|
||
|
saveNewViewWithNameID,
|
||
|
serviceAttributeID,
|
||
|
tableViewTabID,
|
||
|
traceExplorerViewsGetEndpoint,
|
||
|
traceExplorerViewsPostEndpoint,
|
||
|
traceRowTraceTabID,
|
||
|
traceTabID,
|
||
|
tracesExplorerQueryData,
|
||
|
tracesExplorerViewsData,
|
||
|
tracesExplorerViewsPostData,
|
||
|
} from './utils';
|
||
|
|
||
|
let page: Page;
|
||
|
|
||
|
test.describe('New Traces Explorer', () => {
|
||
|
test.beforeEach(async ({ baseURL, browser }) => {
|
||
|
const context = await browser.newContext({
|
||
|
storageState: 'tests/auth.json',
|
||
|
});
|
||
|
const newPage = await context.newPage();
|
||
|
|
||
|
await loginApi(newPage);
|
||
|
|
||
|
await newPage.goto(`${baseURL}${ROUTES.APPLICATION}`);
|
||
|
|
||
|
page = newPage;
|
||
|
});
|
||
|
|
||
|
test('Traces Explorer Tests', async ({}) => {
|
||
|
await page.locator(`li[data-menu-id*="/trace"]`).click();
|
||
|
|
||
|
await tracesExplorerQueryData(page, queryRangeSuccessResponse);
|
||
|
|
||
|
await defaultAttributeKeysData(page);
|
||
|
|
||
|
const queryRangeRequest = page.waitForRequest(`**/${queryRangeApiEndpoint}`);
|
||
|
|
||
|
await page.locator(`data-testid=${newExplorerCtaID}`).click();
|
||
|
|
||
|
await queryRangeRequest;
|
||
|
|
||
|
await page.getByText('List View').click();
|
||
|
|
||
|
const serviceName = await page
|
||
|
.locator(`data-testid=${serviceAttributeID}`)
|
||
|
.textContent();
|
||
|
|
||
|
expect(serviceName).toBe('route');
|
||
|
|
||
|
const httpMethod = await page
|
||
|
.locator(`data-testid=${httpMethodAttributeID}`)
|
||
|
.textContent();
|
||
|
|
||
|
expect(httpMethod).toBe('GET');
|
||
|
|
||
|
await tracesExplorerQueryData(page, tracesSuccessResponse);
|
||
|
|
||
|
await page.locator(`id=${traceTabID}`).click();
|
||
|
|
||
|
const traceID = await page
|
||
|
.locator(`data-testid=${traceRowTraceTabID}`)
|
||
|
.textContent();
|
||
|
|
||
|
expect(traceID).toBe(
|
||
|
tracesSuccessResponse.data.result[0].list[0].data.traceID,
|
||
|
);
|
||
|
|
||
|
await tracesExplorerQueryData(page, tracesTableSuccessResponse);
|
||
|
|
||
|
await page.locator(`id=${tableViewTabID}`).click();
|
||
|
|
||
|
await page.waitForLoadState('networkidle');
|
||
|
|
||
|
const count = await page.getByText('85784').isVisible();
|
||
|
|
||
|
await expect(count).toBeTruthy();
|
||
|
|
||
|
await page.locator(`data-testid=${saveNewViewID}`).click();
|
||
|
|
||
|
await page.locator('id=viewName').type('Playwright');
|
||
|
|
||
|
await tracesExplorerQueryData(page, queryRangeSuccessResponse);
|
||
|
|
||
|
await tracesExplorerViewsData(page);
|
||
|
|
||
|
await tracesExplorerViewsPostData(page);
|
||
|
|
||
|
const viewsSaveRequest = page.waitForRequest(
|
||
|
`**/${traceExplorerViewsPostEndpoint}`,
|
||
|
);
|
||
|
|
||
|
const viewsGetRequest = page.waitForRequest(
|
||
|
`**/${traceExplorerViewsGetEndpoint}`,
|
||
|
);
|
||
|
|
||
|
await page.locator(`data-testid=${saveNewViewWithNameID}`).click();
|
||
|
|
||
|
await viewsSaveRequest;
|
||
|
|
||
|
await viewsGetRequest;
|
||
|
|
||
|
const viewName = await page.getByText('Playwright').isVisible();
|
||
|
|
||
|
await expect(viewName).toBeTruthy();
|
||
|
});
|
||
|
});
|