Skip to content

test(fe): null-vs-zero matrix for IC KPI rendering (#1337)#164

Open
SharedQA wants to merge 1 commit into
constructorfabric:mainfrom
SharedQA:claude/fe-null-vs-zero
Open

test(fe): null-vs-zero matrix for IC KPI rendering (#1337)#164
SharedQA wants to merge 1 commit into
constructorfabric:mainfrom
SharedQA:claude/fe-null-vs-zero

Conversation

@SharedQA

Copy link
Copy Markdown

What

A not-ingested metric arrives as NULL and must never render as a real 0 — a confident wrong zero misrepresents a contributor (the recurring silent-wrong-number class). Pinned end to end:

  • transforms.null-vs-zero: every nullable numeric field × every wire format (integer/decimal1/percent/hours) — NULL stays null, a real 0 renders the formatted zero. 32 parametrized cases so no field/format can regress alone.
  • kpi-tile.null: the component renders for a null value and never a literal 0 (the user-visible symptom), and drops the peer median bar.

Verified

vitest (112 pass), tsc --noEmit, eslint --max-warnings 0 — all clean.

Separate branch from the theme-crash / general regression PR, per request.

A not-ingested metric arrives as NULL and must never render as a real 0 —
showing a confident wrong zero misrepresents a contributor (the recurring
silent-wrong-number class). Pin it end to end:

- transforms.null-vs-zero: every nullable numeric field × every wire format
  (integer/decimal1/percent/hours) — NULL stays null, a real 0 renders the
  formatted zero. 32 cases, parametrized so no field/format can regress alone.
- kpi-tile.null: the component renders '—' for a null value and never a
  literal '0' (the user-visible symptom), and drops the peer median bar.

vitest + tsc --noEmit + eslint --max-warnings 0 all clean. Separate branch from
the theme-crash fix / general FE regression suite.

Signed-off-by: Kenan Salim <kenan.salim@rolos.com>
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@SharedQA, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 58 minutes and 38 seconds. Learn how PR review limits work.

To continue reviewing without waiting, enable usage-based billing in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a69dd6a9-cdef-4b5b-b285-bf1e3e505a20

📥 Commits

Reviewing files that changed from the base of the PR and between bddede7 and 7d198d5.

📒 Files selected for processing (2)
  • src/api/transforms.null-vs-zero.test.ts
  • src/components/widgets/v2/kpi-tile.null.test.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

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.

1 participant