Skip to content

Add unit tests for the editor tab tracking helpers #20180

Description

@MilosPaunovic

What

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

Six of the module's eight exports are untested. getTabType and getTabMetadata are pure classification over a tab object and are the interesting half; the track* functions wrap them and emit the analytics event.

What to do

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

  • getTabType classifies each kind of editor tab correctly
  • getTabType returns a sensible value for an unrecognised tab rather than throwing
  • getTabMetadata builds the expected payload for each tab type
  • trackTabOpen, trackTabClose, trackFileOpen and trackBlueprintSelection each emit one event with the right type and metadata
  • the tracking calls are safe when the analytics store rejects or is unavailable

Stub the api store and assert the payload it receives.

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/tabTracking.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

Assignees

Labels

area/analyticsIssues about analytics, usage tracking, and reportingarea/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