a2ui-project / a2ui-project/a2ui
Improve validateCatalogItemExamples to make sure the examples can be parsed.
- 主要语言
- TypeScript
- 星标
- 16.4k
- 派生
- 1.3k
- 平均合并
- 2 天 13 小时
- 30 天内合并 PR
- 134
描述
_↴ 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:
```
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.
贡献指南
调研方向
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.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- flutter, typescript
- 领域
- testing, tooling
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 冷清
- 描述清晰度
- 描述清楚
- 新手友好度
- 65/100