--dryRun fails for navigate callbacks and startNavigation/endNavigation
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- cli, typescript
- 領域
- cli, testing-qa
調査の方向性
packages/cli/src/lib/commands/collect/utils/user-flow/user-flow.mock.ts の UserFlowMock から始めます。navigate は、requestor が関数である場合はそれを呼び出し、そうでなければ page.goto を呼び出すようにします。その後、startTimespan と endTimespan に倣って、ログ出力のみを行う no-op 形式の startNavigation と endNavigation メソッドを追加します。コールバック形式の navigate と startNavigation/endNavigation の両方を使う dry-run の e2e ケースが、レポートを書き出さず、プロトコルエラーも発生させずに完了すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
collect --dryRun fails for any flow that navigates with a callback, or calls startNavigation/endNavigation. It fails before writing any report.
UserFlowMock (packages/cli/src/lib/commands/collect/utils/user-flow/user-flow.mock.ts) stands in for Lighthouse's UserFlow in a dry run:
-
navigate(requestor)always callspage.goto(requestor). Whenrequestoris a function, as inflow.navigate(async () => page.click('a')), Chrome rejects it:ProtocolError: Protocol error (Page.navigate): Invalid parameters Failed to deserialize params.url - BINDINGS: mandatory field missing at position 50 -
It has no
startNavigationorendNavigationmethods. A flow that calls them, or a recording withstartNavigation/endNavigationsteps, cannot run.
Reproduction
user-flow 0.21.6, with no Lighthouse config:
// user-flows/click.uf.mts
export default {
flowOptions: { name: 'Click' },
interactions: async ({ flow, page, collectOptions }) => {
await flow.navigate(collectOptions.url);
await flow.navigate(async () => {
await page.click('a');
});
},
};
npx user-flow collect --url https://example.com --ufPath ./user-flows --dryRun
flow.navigate(collectOptions.url) alone dry-runs fine.
Proposed fix
In UserFlowMock:
navigate: run the callback whenrequestoris a function, otherwisepage.goto(requestor);- add
startNavigationandendNavigation, which only log, likestartTimespanandendTimespan.
Tests: a dry-run e2e case with a callback navigate and with startNavigation/endNavigation.
Context: these are how @push-based/lighthouse-soft-navigation measures soft navigations, so dry runs of those flows fail today.
- 主要言語
- HTML
- スター
- 131
- フォーク
- 7
- 平均マージ
- 7時間 58分
- マージ済み PR(30日)
- 42
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
push-based/user-flow のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
push-based/user-flow#356 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 24/100
push-based/user-flow#285 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
push-based/user-flow#272 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
nx-plugin - init command adds `"PLUGIN_NAME": "^0.0.0"` to `package.json`再び着手できるかも @ChristopherPHolder が 1211 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug DX
push-based/user-flow#248 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
push-based/user-flow#247 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
push-based/user-flow の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ScoopInstaller/Shim#22 ·
-
Command description is always printed despite being optional対応中かも @davidwarrington が今日担当しました。 オープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
MaximeMRF/adonisjs-jwt#102 ·
-
accessibility effort: small enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
pedersebastian/CustomBossChallenge#185 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信