mirror of https://github.com/grafana/grafana.git
64 lines
2.1 KiB
TypeScript
64 lines
2.1 KiB
TypeScript
|
import { readFileSync } from 'fs';
|
||
|
import { join } from 'path';
|
||
|
|
||
|
import { test, expect } from '@grafana/plugin-e2e';
|
||
|
|
||
|
// this test requires a larger viewport
|
||
|
test.use({
|
||
|
viewport: { width: 1280, height: 1080 },
|
||
|
});
|
||
|
|
||
|
// TODO for some reason, this test gives "connection refused" errors in CI
|
||
|
test.describe.skip(
|
||
|
'Trace view',
|
||
|
{
|
||
|
tag: ['@various'],
|
||
|
},
|
||
|
() => {
|
||
|
test('Can lazy load big traces', async ({ page, selectors }) => {
|
||
|
// Load the fixture data
|
||
|
const fixturePath = join(__dirname, '../fixtures/long-trace-response.json');
|
||
|
const longTraceResponse = JSON.parse(readFileSync(fixturePath, 'utf8'));
|
||
|
|
||
|
// Mock the API response
|
||
|
await page.route('*/**/api/traces/trace', async (route) => {
|
||
|
await route.fulfill({
|
||
|
status: 200,
|
||
|
contentType: 'application/json',
|
||
|
body: JSON.stringify(longTraceResponse),
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Navigate to Explore page
|
||
|
await page.goto(selectors.pages.Explore.url);
|
||
|
|
||
|
// Select the Jaeger data source
|
||
|
const dataSourcePicker = page.getByTestId(selectors.components.DataSourcePicker.container);
|
||
|
await dataSourcePicker.click();
|
||
|
const datasourceList = page.getByTestId(selectors.components.DataSourcePicker.dataSourceList);
|
||
|
await datasourceList.getByText('gdev-jaeger').click();
|
||
|
|
||
|
// Check that gdev-jaeger is visible in the query editor
|
||
|
await expect(page.getByText('gdev-jaeger')).toBeVisible();
|
||
|
|
||
|
// Type the query
|
||
|
const queryField = page
|
||
|
.getByTestId(selectors.components.QueryField.container)
|
||
|
.locator('[contenteditable="true"]');
|
||
|
await queryField.fill('trace');
|
||
|
|
||
|
// Use Shift+Enter to execute the query
|
||
|
await queryField.press('Shift+Enter');
|
||
|
|
||
|
// Get the initial count of span bars
|
||
|
const initialSpanBars = page.getByTestId(selectors.components.TraceViewer.spanBar);
|
||
|
const initialSpanBarCount = await initialSpanBars.count();
|
||
|
|
||
|
await initialSpanBars.last().scrollIntoViewIfNeeded();
|
||
|
await expect
|
||
|
.poll(async () => await page.getByTestId(selectors.components.TraceViewer.spanBar).count())
|
||
|
.toBeGreaterThan(initialSpanBarCount);
|
||
|
});
|
||
|
}
|
||
|
);
|