fix(trace-viewer): time delta between local and remote actions (#32661)

This commit is contained in:
Yury Semikhatsky 2024-09-17 11:14:15 -07:00 коммит произвёл GitHub
Родитель f1390cc269
Коммит ad70e7a783
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
3 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -312,7 +312,7 @@ function monotonicTimeDeltaBetweenLibraryAndRunner(nonPrimaryContexts: ContextEn
for (const action of context.actions) {
if (!action.startTime)
continue;
const key = matchByStepId ? action.stepId! : `${action.apiName}@${(action as any).wallTime}`;
const key = matchByStepId ? action.callId! : `${action.apiName}@${(action as any).wallTime}`;
const libraryAction = libraryActions.get(key);
if (libraryAction)
return action.startTime - libraryAction.startTime;

Двоичные данные
tests/assets/trace-remote-time-diff.zip Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -127,6 +127,12 @@ test('should complain about newer version of trace in old viewer', async ({ show
await expect(traceViewer.page.getByText('The trace was created by a newer version of Playwright and is not supported by this version of the viewer.')).toBeVisible();
});
test('should properly synchronize local and remote time', async ({ showTraceViewer, asset }, testInfo) => {
const traceViewer = await showTraceViewer([asset('trace-remote-time-diff.zip')]);
// The total duration should be sub 10s, rather than 16h.
await expect(traceViewer.page.locator('.timeline-time').last()).toHaveText('8.5s');
});
test('should contain action info', async ({ showTraceViewer }) => {
const traceViewer = await showTraceViewer([traceFile]);
await traceViewer.selectAction('locator.click');