mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
fix(uimode): show trace failure and any error messages on missing trace (#35344)
This commit is contained in:
parent
01ea1cafdc
commit
26b9441d86
@ -32,7 +32,7 @@ export const TraceView: React.FC<{
|
||||
revealSource?: boolean,
|
||||
pathSeparator: string,
|
||||
}> = ({ item, rootDir, onOpenExternally, revealSource, pathSeparator }) => {
|
||||
const [model, setModel] = React.useState<{ model: MultiTraceModel, isLive: boolean } | undefined>();
|
||||
const [model, setModel] = React.useState<{ model: MultiTraceModel, isLive: boolean } | undefined>(undefined);
|
||||
const [counter, setCounter] = React.useState(0);
|
||||
const pollTimer = React.useRef<NodeJS.Timeout | null>(null);
|
||||
|
||||
@ -75,7 +75,9 @@ export const TraceView: React.FC<{
|
||||
const model = await loadSingleTraceFile(traceLocation);
|
||||
setModel({ model, isLive: true });
|
||||
} catch {
|
||||
setModel(undefined);
|
||||
const model = new MultiTraceModel([]);
|
||||
model.errorDescriptors.push(...result.errors.flatMap(error => !!error.message ? [{ message: error.message }] : []));
|
||||
setModel({ model, isLive: false });
|
||||
} finally {
|
||||
setCounter(counter + 1);
|
||||
}
|
||||
|
||||
@ -581,3 +581,27 @@ test('fails', async ({ page }) => {
|
||||
5 | });
|
||||
`.trim());
|
||||
});
|
||||
|
||||
test('should indicate current test status', async ({ runUITest }) => {
|
||||
const { page } = await runUITest({
|
||||
'a.spec.ts': `
|
||||
import { test, expect } from '@playwright/test';
|
||||
test('basic pass', async ({ page }) => {
|
||||
await page.setContent('<button>Submit</button>');
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
expect(1).toBe(1);
|
||||
});
|
||||
test('basic fail', async ({ page }) => {
|
||||
await page.setContent('<button>Submit</button>');
|
||||
expect(1).toBe(2);
|
||||
});
|
||||
`.trim(),
|
||||
});
|
||||
|
||||
await page.getByTestId('test-tree').getByText('basic pass').dblclick();
|
||||
await expect(page.getByRole('tabpanel', { name: 'Actions' })).toContainText('Running');
|
||||
await expect(page.getByRole('tabpanel', { name: 'Actions' })).toContainText('Passed');
|
||||
|
||||
await page.getByTestId('test-tree').getByText('basic fail').dblclick();
|
||||
await expect(page.getByRole('tabpanel', { name: 'Actions' })).toContainText('Failed');
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user