diff --git a/fixtures/dev-qa/README.md b/fixtures/dev-qa/README.md new file mode 100644 index 0000000..b2d785c --- /dev/null +++ b/fixtures/dev-qa/README.md @@ -0,0 +1,13 @@ +# Dev/QA Smoke Fixture Schemas + +These JSON schemas provide lightweight smoke-test coverage for each JSON UI component category. +Each file is a standalone page schema that can be loaded in dev or QA to verify rendering. + +## Categories +- `layout.json` +- `input.json` +- `display.json` +- `navigation.json` +- `feedback.json` +- `data.json` +- `custom.json` diff --git a/fixtures/dev-qa/custom.json b/fixtures/dev-qa/custom.json new file mode 100644 index 0000000..df784a9 --- /dev/null +++ b/fixtures/dev-qa/custom.json @@ -0,0 +1,40 @@ +{ + "id": "smoke-custom", + "name": "Smoke Custom", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "custom-section", + "type": "section", + "children": [ + { + "id": "custom-heading", + "type": "Heading", + "props": { + "level": 3, + "children": "Custom Component Smoke Check" + } + }, + { + "id": "custom-data-card", + "type": "DataCard", + "props": { + "title": "QA Metric", + "value": "99%", + "icon": "TrendUp" + } + }, + { + "id": "custom-search", + "type": "SearchInput", + "props": { + "placeholder": "Search QA fixtures..." + } + } + ] + } + ] +} diff --git a/fixtures/dev-qa/data.json b/fixtures/dev-qa/data.json new file mode 100644 index 0000000..cf83a1c --- /dev/null +++ b/fixtures/dev-qa/data.json @@ -0,0 +1,46 @@ +{ + "id": "smoke-data", + "name": "Smoke Data", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "data-section", + "type": "section", + "children": [ + { + "id": "data-heading", + "type": "Heading", + "props": { + "level": 3, + "children": "Data Smoke Check" + } + }, + { + "id": "data-list", + "type": "List", + "props": { + "items": ["QA record A", "QA record B", "QA record C"], + "emptyMessage": "No QA records" + } + }, + { + "id": "data-table", + "type": "Table", + "props": { + "columns": [ + { "key": "name", "header": "Name" }, + { "key": "status", "header": "Status" } + ], + "data": [ + { "name": "Smoke Run", "status": "Pass" }, + { "name": "Regression", "status": "Pending" } + ] + } + } + ] + } + ] +} diff --git a/fixtures/dev-qa/display.json b/fixtures/dev-qa/display.json new file mode 100644 index 0000000..736940e --- /dev/null +++ b/fixtures/dev-qa/display.json @@ -0,0 +1,42 @@ +{ + "id": "smoke-display", + "name": "Smoke Display", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "display-section", + "type": "section", + "children": [ + { + "id": "display-heading", + "type": "Heading", + "props": { + "level": 3, + "children": "Display Smoke Check" + } + }, + { + "id": "display-text", + "type": "Text", + "props": { + "children": "Checks text, badges, and separators for QA verification." + } + }, + { + "id": "display-badge", + "type": "Badge", + "props": { + "children": "QA" + } + }, + { + "id": "display-divider", + "type": "Divider" + } + ] + } + ] +} diff --git a/fixtures/dev-qa/feedback.json b/fixtures/dev-qa/feedback.json new file mode 100644 index 0000000..add7d71 --- /dev/null +++ b/fixtures/dev-qa/feedback.json @@ -0,0 +1,40 @@ +{ + "id": "smoke-feedback", + "name": "Smoke Feedback", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "feedback-section", + "type": "section", + "children": [ + { + "id": "feedback-heading", + "type": "Heading", + "props": { + "level": 3, + "children": "Feedback Smoke Check" + } + }, + { + "id": "feedback-alert", + "type": "Alert", + "props": { + "variant": "info", + "children": "QA info alert rendered." + } + }, + { + "id": "feedback-status", + "type": "StatusBadge", + "props": { + "status": "active", + "children": "Active" + } + } + ] + } + ] +} diff --git a/fixtures/dev-qa/input.json b/fixtures/dev-qa/input.json new file mode 100644 index 0000000..f592b79 --- /dev/null +++ b/fixtures/dev-qa/input.json @@ -0,0 +1,45 @@ +{ + "id": "smoke-input", + "name": "Smoke Input", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "input-section", + "type": "section", + "children": [ + { + "id": "input-heading", + "type": "Heading", + "props": { + "level": 2, + "children": "Input Smoke Check" + } + }, + { + "id": "input-control", + "type": "Input", + "props": { + "placeholder": "Enter QA value..." + } + }, + { + "id": "input-toggle", + "type": "Switch", + "props": { + "checked": true + } + }, + { + "id": "input-button", + "type": "Button", + "props": { + "children": "Submit" + } + } + ] + } + ] +} diff --git a/fixtures/dev-qa/layout.json b/fixtures/dev-qa/layout.json new file mode 100644 index 0000000..33565e3 --- /dev/null +++ b/fixtures/dev-qa/layout.json @@ -0,0 +1,67 @@ +{ + "id": "smoke-layout", + "name": "Smoke Layout", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "layout-container", + "type": "Container", + "props": { + "className": "py-6" + }, + "children": [ + { + "id": "layout-stack", + "type": "Stack", + "props": { + "gap": 4 + }, + "children": [ + { + "id": "layout-card", + "type": "Card", + "children": [ + { + "id": "layout-card-header", + "type": "CardHeader", + "children": [ + { + "id": "layout-card-title", + "type": "CardTitle", + "props": { + "children": "Layout Smoke Check" + } + }, + { + "id": "layout-card-description", + "type": "CardDescription", + "props": { + "children": "Ensures layout primitives render in QA." + } + } + ] + }, + { + "id": "layout-card-content", + "type": "CardContent", + "children": [ + { + "id": "layout-card-text", + "type": "Text", + "props": { + "children": "This card is wrapped in Container and Stack components." + } + } + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/fixtures/dev-qa/navigation.json b/fixtures/dev-qa/navigation.json new file mode 100644 index 0000000..9095c36 --- /dev/null +++ b/fixtures/dev-qa/navigation.json @@ -0,0 +1,42 @@ +{ + "id": "smoke-navigation", + "name": "Smoke Navigation", + "layout": { + "type": "single" + }, + "dataSources": [], + "components": [ + { + "id": "navigation-section", + "type": "section", + "children": [ + { + "id": "navigation-heading", + "type": "Heading", + "props": { + "level": 3, + "children": "Navigation Smoke Check" + } + }, + { + "id": "navigation-link", + "type": "Link", + "props": { + "href": "/qa", + "children": "Go to QA overview" + } + }, + { + "id": "navigation-breadcrumb", + "type": "Breadcrumb", + "props": { + "items": [ + { "label": "Home", "href": "/" }, + { "label": "QA" } + ] + } + } + ] + } + ] +}