Skip to content

Add unit tests for flattenMenuItems #20185

Description

@MilosPaunovic

What

ui/src/utils/menuCustomization.ts already has a spec, but the exports below have no coverage in it.

The sidebar customisation dialog works off the flattened list this produces, so a nested item that gets lost here becomes an item the user cannot reorder or hide.

What to do

Add cases to the existing ui/tests/unit/utils/menuCustomization.spec.ts covering:

  • a flat menu is returned unchanged
  • children are flattened in with their parents, in display order
  • arbitrarily deep nesting is fully flattened
  • an item with an empty children array is kept, not dropped
  • an empty menu returns an empty list

Reference

The spec file itself shows the house style; ui/tests/unit/utils/splitTranslation.spec.ts is another example.

How to run

Install once, then run the whole suite:

cd ui && npm install && npm run test:unit

While writing the test, run just this file so the feedback loop stays fast:

cd ui && npm run test:unit -- tests/unit/utils/menuCustomization.spec.ts

Proof required in the PR

Important

The PR that closes this issue must include a screenshot of the test passing, pasted into the PR description. Pasted text output is not enough.

To produce it, run the single-file command above and screenshot the terminal. The capture should show the command, the test file, and the green summary lines (Test Files 1 passed (1) and Tests N passed (N)). Then drag the image straight into the PR description field on GitHub, which uploads and embeds it.

No activity

Activity on this issue will appear here.

Activity

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

Metadata

Metadata

Labels

area/frontendNeeds frontend code changesgood first issueGreat issue for new contributorskind/cooldownGreat candidate for the cooldown period

Type

Fields

Stage

In progress

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions