a2ui-project / a2ui-project/a2ui

Improve validateCatalogItemExamples to make sure the examples can be parsed.

Open Beginner friendly
#1,834 0 comments 0 reactions 0 assignees View on GitHub
component: genui P3
Dominant language
TypeScript
Stars
16.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
134

Description

_↴ Ported from [flutter/genui#449](https://github.com/flutter/genui/issues/449) — originally opened by [polina-c](https://github.com/polina-c) on 2025-10-26._
_Original labels: P3, c: ebb_

---

This is follow up for https://github.com/flutter/genui/pull/429

I was updating catalog items examples in my app to match new GenUi schema.

I updated the catalog items examples to look similar to those in genui and to pass this test:

```
for (final item in namedCatalog.catalog.items) {
test('CatalogItem ${item.name} examples are valid', () async {
if (item.name != 'code') return;
final errors = await validateCatalogItemExamples(
item,
namedCatalog.catalog,
);
expect(errors, isEmpty, reason: errors.join('\n'));
});
}
```

Tests passed, but the rendering failed:

Image

```
The following ArgumentError was thrown building AppCatalogView:
Invalid argument(s): Component.fromJson: component property is null

...

new Component.fromJson (package:flutter_genui/src/model/ui_models.dart:141:7)
```

After investigation I found i did not replace 'widget' with 'component' in one of items.

`validateCatalogItemExamples` should be updated to handle such errors, to make sure that DebugCatalogView can parse the items.

---

### 2 comment(s) from the original issue

**[polina-c](https://github.com/polina-c)** commented on 2025-10-26:

@jacobsimionato

---

**[jacobsimionato](https://github.com/jacobsimionato)** commented on 2025-11-03:

Removing from M1, because this isn't specific to that project.

Contributor guide

Open the contributing guide

Research direction

Look at the validateCatalogItemExamples function, likely in a test or validation file. The function currently passes tests but does not catch JSON parsing errors like missing 'component' property. Update it to ensure examples can be parsed by Component.fromJson, possibly by adding a parsing step. Check the model file at package:flutter_genui/src/model/ui_models.dart:141 for the fromJson method to understand the expected structure. Run the existing test for catalog item examples to verify the fix.

Written by the indexing model from the issue text.

Assessment

Tech stack
flutter, typescript
Domain
testing, tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.