Skip to content

test(e2e): tip-clear Progress wait after #228 void-navigate - #229

Merged
Fooftilly merged 1 commit into
masterfrom
cursor/qodo-228-stale-progress-wait-5e35
Sep 26, 2026
Merged

Fooftilly merged 1 commit into
masterfrom
cursor/qodo-228-stale-progress-wait-5e35

Conversation

@Fooftilly

@Fooftilly Fooftilly commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

Tip-clear for the High Qodo finding on merged #228: void prksNavigate stays, but Progress helpers must not sample cards from the departing status group.

Changes

  • navigate() waits for location.hash === route after fire-and-forget navigate
  • wait_progress_ready(status) requires hash + non-loading main tile + page title containing the status
  • progress_ids() / progress() use that readiness; id collection scoped to .prks-tile--main
  • Removes the wait_for_timeout(120) sleep in progress_ids

Context

Test plan

  • Targeted: test_a_pending_status_moves_the_work_between_progress_groups PASS
  • tests.e2e.test_wait_for_async (14) PASS — void-navigate regression still green
Open in Web Open in Cursor 

Summary by CodeRabbit

  • Tests
    • Improved end-to-end test reliability for navigating between work metadata and progress views, including checks that the requested status and work items are ready before verification.

Void prksNavigate is correct, but progress_ids could accept the
departing Progress group's non-loading tile. Commit the hash in
navigate, require the requested status title before sampling ids,
and drop the fixed 120ms sleep.

Co-authored-by: Nikola Perović <Fooftilly@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: Fooftilly/PRKS/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 2e3e6312-ac92-4ed4-b57d-27b0637c29f5

📥 Commits

Reviewing files that changed from the base of the PR and between 2b52366 and ca09f65.

📒 Files selected for processing (1)
  • tests/e2e/test_work_metadata_offline.py

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The end-to-end test helpers now wait for route changes and Progress page readiness. Work ID collection is scoped to the main tile and no longer uses a fixed delay.

Changes

Progress readiness

Layer / File(s) Summary
Route and Progress readiness
tests/e2e/test_work_metadata_offline.py
navigate waits for the route hash to change. The shared wait_progress_ready helper checks the requested status hash, main tile loading, and page title. progress_ids uses this check and scopes Work ID collection to the main tile. progress also uses the shared check.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Suggested reviewers: cursoragent

Merge Risk: ⚪ Minimal · up to ca09f

The Progress helpers wait for the requested route and rendered status before reading page content. The inspected rendering path supports that synchronization, so no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 7 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.14% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (7 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title identifies an end-to-end test change that improves the Progress wait after the void-navigation change. It matches the pull request objective and is concise.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Prks Engineering Invariants ✅ Passed PASS. The patch follows the applicable repository rules. tests/e2e/AGENTS.md requires observable route or DOM waits instead of arbitrary sleeps; the patch removes the fixed 120 ms delay and uses syn…
Ui Design Contract ✅ Passed PASS — The review range changes only tests/e2e/test_work_metadata_offline.py. The patch updates E2E navigation and readiness helpers, card selection, and test waits. It does not change frontend sour…
Offline And Sync Coherence ✅ Passed PASS — The PR changes only tests/e2e/test_work_metadata_offline.py; it does not change service-worker, persistence, sync-runtime, or application transition logic. The test-only changes make Progress…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@Fooftilly
Fooftilly marked this pull request as ready for review September 26, 2026 14:48
greptile-apps[bot]

This comment was marked as off-topic.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Stabilize Progress E2E waits after asynchronous navigation

🐞 Bug fix 🧪 Tests 🕐 10-20 Minutes

Grey Divider

AI Description

• Wait for canonical route hashes before inspecting newly navigated pages.
• Require the requested Progress group to finish rendering before sampling cards.
• Scope card IDs to the main tile and remove timing-based sleeps.
Diagram

graph TD
    A["Progress helper"] --> B["Fire navigation"] --> C{"Hash matches?"}
    C -- "Yes" --> D{"Status rendered?"}
    D -- "Yes" --> E["Main tile cards"] --> F["Work IDs"]
    C -- "No" --> C
    D -- "No" --> D
Loading
High-Level Assessment

The explicit state-based wait is the appropriate approach: it preserves fire-and-forget navigation to avoid the existing watchdog risk while eliminating the unreliable fixed delay. Awaiting prksNavigate directly could wedge tests, and increasing sleeps or adding retries would only mask the stale-route race.

Files changed (1) +22 / -9

Tests (1) +22 / -9
test_work_metadata_offline.pySynchronize Progress helpers with the requested rendered route +22/-9

Synchronize Progress helpers with the requested rendered route

• Navigation now waits for the exact destination hash while retaining fire-and-forget prksNavigate behavior. Progress helpers verify the requested status title and completed main-tile render before reading main-tile card IDs, replacing the fixed 120 ms delay.

tests/e2e/test_work_metadata_offline.py

@github-actions github-actions Bot deleted a comment from qodo-code-review Bot Sep 26, 2026
@Fooftilly
Fooftilly merged commit b70f5e7 into master Sep 26, 2026
29 of 34 checks passed
@Fooftilly
Fooftilly deleted the cursor/qodo-228-stale-progress-wait-5e35 branch September 26, 2026 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants