Renderer suites flake under CPU load: fixed delays before async state (git-components, file-find-dom, mailbox-inbox-components, others)

Open
#815 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
70/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
electron, typescript

Research direction

Run node scripts/test-renderer.mjs to reproduce the flaky suites. Locate the test files for git-components, file-find-dom, and mailbox-inbox-components (likely under a renderer test dir) and replace fixed delay() calls with waits for rendered state or attached listeners. Confirm by running the suites alone and under load until they pass consistently.

Written by the indexing model from the issue text.

Description

type:bug

Found while fixing #802. On a heavily loaded Mac (load average about 40), a full node scripts/test-renderer.mjs run failed these suites on both attempts. None of them mount the Composer or the editor touched in #802:

  • git-components: environment and branch dropdowns: This Mac (0/2 when run alone). The suite waits a fixed delay(120) after rendering EnvironmentFooter, before the branch/environment fetch lands.
  • file-find-dom: the Find bar opens (1/2). It dispatches Cmd+F 60 ms after mount, so the window keydown listener's effect may not be attached yet.
  • mailbox-inbox-components: expected 3, got 0 (1/2).
  • git-history-components (0 painted of 150 known), governance-components and html-preview-components failed in the full run but passed 2/2 when run alone.

These are the same kind of problem as #802: a fixed delay before asserting on state that arrives through an effect or a promise. Fix: wait for the real signal (the rendered state), and for key or click input, wait until the listener or handler is attached.

Dominant language
TypeScript
Stars
3
Forks
0
Avg merge
17h 33m
Merged PRs (30d)
163

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from musterhq/muster-code

All issues in musterhq/muster-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.