fix(neodash-converter): map text→markdown and circlePacking→circle-packing - #878
Conversation
…cking Surfaced while dry-running 17 NeoDash dashboards from the NovoNordisk-OpenSource/openstudybuilder-solution repo: - `text` (35 instances across 13 dashboards) — NeoDash's plain-text/ markdown widget had no entry in CHART_TYPE_MAP, so it fell back to the generic JSON viewer. Map it to NeoBoard's `markdown` widget. - `circlePacking` (3 instances, camelCase) — the converter already had `circle_packing` (snake_case), but NeoDash exports use camelCase. Add the alias. Both are 1-line additions to the existing CHART_TYPE_MAP. Tests extend the existing parametrized type-mapping it.each table. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThe PR extends NeoDash chart type conversion by adding two new aliases to the ChangesChart Type Mapping Aliases
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Refresh the migration guide based on a real-world validation pass against the OpenStudyBuilder NeoDash corpus (17 dashboards · 12-46 widgets each). - Chart type mapping table: add `text → markdown`, `circle_packing`/ `circlePacking → circle-packing`, both `iframe`/`iFrame` casings, `choropleth`/`areamap` aliases, `graph3d`/`3d-graph` (2D render), `gantt`. Reflects #878. - New 'Click actions' section: documents both the object-shape and string-shape ('set variable' + customizationValue) NeoDash emits. Reflects #881. - New 'Conditional / rule-based styling' section: explicit operator mapping table for styleRules. - New 'Auto-refresh' section: refreshRate (seconds) → cacheTtlMinutes. - New 'Known limitations' section with the one residual gap surfaced by testing: only the first actionsRules rule per widget is converted (tracked in #882). - Troubleshooting refreshed: schema-update files that aren't dashboards, text-widget JSON-fallback bug, click-action multi-rule limitation, silent auto-save bug. - Tip at top points to the corpus and links to Known limitations. No code changes. CI will validate the MDX build. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs(migration): update NeoDash guide with corpus-tested findings Refresh the migration guide based on a real-world validation pass against the OpenStudyBuilder NeoDash corpus (17 dashboards · 12-46 widgets each). - Chart type mapping table: add `text → markdown`, `circle_packing`/ `circlePacking → circle-packing`, both `iframe`/`iFrame` casings, `choropleth`/`areamap` aliases, `graph3d`/`3d-graph` (2D render), `gantt`. Reflects #878. - New 'Click actions' section: documents both the object-shape and string-shape ('set variable' + customizationValue) NeoDash emits. Reflects #881. - New 'Conditional / rule-based styling' section: explicit operator mapping table for styleRules. - New 'Auto-refresh' section: refreshRate (seconds) → cacheTtlMinutes. - New 'Known limitations' section with the one residual gap surfaced by testing: only the first actionsRules rule per widget is converted (tracked in #882). - Troubleshooting refreshed: schema-update files that aren't dashboards, text-widget JSON-fallback bug, click-action multi-rule limitation, silent auto-save bug. - Tip at top points to the corpus and links to Known limitations. No code changes. CI will validate the MDX build. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(migration): correct two converter-behavior claims (CodeRabbit) - Styling rules: the converter defaults missing colors to #000000 (black), it doesn't drop the rule. Updated wording to reflect the actual fallback behavior. - Auto-refresh: refreshRate→cacheTtlMinutes uses Math.round (nearest), not round-up. Show the exact formula plus concrete examples (30s→1m, 90s→2m, 300s→5m). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: alfredorubin96 <alfredo.rubin@neotechnology.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>



Summary
Surfaced while dry-running 17 real NeoDash dashboards from the NovoNordisk-OpenSource/openstudybuilder-solution corpus.
Two missing entries in `CHART_TYPE_MAP`:
Both are 1-line additions to the existing map. Tests extend the existing parametrized `it.each` table.
Impact on the openstudybuilder corpus
Before: 6 widget types fell back to JSON viewer (35+3 = 38 widgets across 14 dashboards).
After: 0 unmapped widget types — every NeoDash widget type used in the corpus maps cleanly.
Test plan
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Summary by CodeRabbit
New Features
Tests