Skip to content

e2e 全链上传用例 clock.pauseAt 偶发 Cannot fast-forward to the past #270

Open

Description

@zj1123581321

现象

e2e/tests/local-upload-full-chain.spec.ts:175(Chromium 全链上传用例)偶发失败:

Error: clock.pauseAt: Error: Cannot fast-forward to the past
    at e2e/tests/local-upload-full-chain.spec.ts:378:20

出处:PR #267 Browser regression run 39284943882(head 4972baf,该 PR 未改此文件;同一 head 的 draft 期运行通过)。

原因判断

377–378 行先 page.clock.install()(浏览器侧时钟取安装时刻),再 page.clock.pauseAt(new Date())(取 Node 进程当前时间)。两侧时间来源不同,浏览器侧时钟一旦略超前于 Node 侧的 new Date(),pauseAt 即被判为「快进到过去」而抛错。

建议修法

在 install 时显式给定起点,再暂停到一个确定晚于它的时刻,例如:

const start = new Date();
await page.clock.install({ time: start });
await page.clock.pauseAt(new Date(start.getTime() + 1000));

或直接 install({ time }) 后不再 pauseAt 当前时刻,按用例需要使用 fastForward。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions