@atlashub/smartstack-cli 3.39.0 → 3.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +84 -84
- package/templates/agents/efcore/db-deploy.md +74 -74
- package/templates/agents/efcore/db-reset.md +85 -85
- package/templates/agents/efcore/db-seed.md +61 -61
- package/templates/agents/efcore/db-status.md +86 -86
- package/templates/agents/efcore/migration.md +186 -186
- package/templates/agents/efcore/rebase-snapshot.md +108 -108
- package/templates/agents/efcore/scan.md +92 -92
- package/templates/agents/efcore/squash.md +161 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +167 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +94 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,213 +1,213 @@
|
|
|
1
|
-
# Test Generation: Coverage Requirements & Categories
|
|
2
|
-
|
|
3
|
-
> Referenced from `steps/step-07-tests.md` — Test coverage minimums and category definitions.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Minimum Test Coverage Per Category
|
|
8
|
-
|
|
9
|
-
| Category | Minimum Tests | Focus Areas |
|
|
10
|
-
|----------|---------------|------------|
|
|
11
|
-
| Controller (mock) | 10 | CRUD routing, auth/tenant handling, error responses |
|
|
12
|
-
| Controller (real integration) | 8 | CRUD with actual DB persistence, tenant isolation, 404/409 cases |
|
|
13
|
-
| Service | 8 | Business logic, CRUD, error handling, edge cases |
|
|
14
|
-
| Entity | 5 | Factory method, property updates, validation, soft delete |
|
|
15
|
-
| Validator | 8 | Code validation, name validation, security rules |
|
|
16
|
-
| Repository | 8 | CRUD, tenant filtering, pagination, indexes |
|
|
17
|
-
| Security | 10 | Auth bypass attempts, injection attacks, header validation |
|
|
18
|
-
|
|
19
|
-
**Total minimum:** ~67 tests per entity
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Real Integration Test Coverage
|
|
24
|
-
|
|
25
|
-
Integration tests (with actual DB):
|
|
26
|
-
- GET all → 200 with list
|
|
27
|
-
- GET by ID → 200 when exists, 404 when not
|
|
28
|
-
- POST → 201/200 when valid, persist to DB, read back to verify
|
|
29
|
-
- POST → 400 when invalid data
|
|
30
|
-
- POST → 409 when duplicate code
|
|
31
|
-
- PUT → 200 when valid, persist changes, read back to verify
|
|
32
|
-
- PUT → 404 when not exists
|
|
33
|
-
- DELETE → 204 when exists
|
|
34
|
-
- DELETE → 404 when not exists
|
|
35
|
-
- Tenant isolation → create in tenant A, invisible in tenant B (REAL DB)
|
|
36
|
-
- Authorization → 401 when not authenticated
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Test Naming Convention (BLOCKING)
|
|
41
|
-
|
|
42
|
-
All test methods MUST follow: `{Method}_When{Condition}_Should{Result}`
|
|
43
|
-
|
|
44
|
-
**FORBIDDEN patterns:**
|
|
45
|
-
- `Test1`, `Test2`, `TestMethod`, `MyTest`
|
|
46
|
-
- `Should_Return_OK`, `test_get_all`
|
|
47
|
-
|
|
48
|
-
**REQUIRED pattern:**
|
|
49
|
-
```csharp
|
|
50
|
-
GetAll_WhenCalled_ShouldReturn200WithList
|
|
51
|
-
Create_WhenDuplicateCode_ShouldThrowException
|
|
52
|
-
Delete_WhenNotAuthenticated_ShouldReturn401
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Test Structure (BLOCKING)
|
|
58
|
-
|
|
59
|
-
All tests MUST follow Arrange-Act-Assert:
|
|
60
|
-
|
|
61
|
-
```csharp
|
|
62
|
-
// CORRECT
|
|
63
|
-
[Fact]
|
|
64
|
-
public async Task GetById_WhenExists_ShouldReturn200()
|
|
65
|
-
{
|
|
66
|
-
// Arrange
|
|
67
|
-
var id = Guid.NewGuid();
|
|
68
|
-
// ... setup
|
|
69
|
-
|
|
70
|
-
// Act
|
|
71
|
-
var response = await _client.GetAsync($"/api/{entityCode}/{id}");
|
|
72
|
-
|
|
73
|
-
// Assert
|
|
74
|
-
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// FORBIDDEN - No structure
|
|
78
|
-
[Fact]
|
|
79
|
-
public void TestGetById()
|
|
80
|
-
{
|
|
81
|
-
var response = _client.GetAsync("/api/product/1");
|
|
82
|
-
Assert.Equal(200, response.StatusCode);
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Dependencies Check (BLOCKING)
|
|
89
|
-
|
|
90
|
-
Verify test project uses:
|
|
91
|
-
- `FluentAssertions` (NOT `Assert.Equal`)
|
|
92
|
-
- `Moq` (NOT manual fakes)
|
|
93
|
-
- `xunit` (NOT NUnit or MSTest)
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Test Categories
|
|
98
|
-
|
|
99
|
-
### 1. Controller Mock Tests
|
|
100
|
-
|
|
101
|
-
Unit tests with mocked dependencies:
|
|
102
|
-
- Routing validation
|
|
103
|
-
- Authentication/Authorization
|
|
104
|
-
- Error response formatting
|
|
105
|
-
- Input validation
|
|
106
|
-
|
|
107
|
-
```csharp
|
|
108
|
-
[Fact]
|
|
109
|
-
public async Task GetAll_WhenCalled_ShouldReturn200WithList()
|
|
110
|
-
{
|
|
111
|
-
// Mock service
|
|
112
|
-
_mockService.Setup(s => s.GetAllAsync(It.IsAny<CancellationToken>()))
|
|
113
|
-
.ReturnsAsync(new List<ProductDto>());
|
|
114
|
-
|
|
115
|
-
// Act & Assert
|
|
116
|
-
...
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### 2. Controller Integration Tests
|
|
121
|
-
|
|
122
|
-
REAL tests with actual DB (via WebApplicationFactory):
|
|
123
|
-
- Full HTTP flow
|
|
124
|
-
- Database persistence
|
|
125
|
-
- Tenant isolation
|
|
126
|
-
- Query validation
|
|
127
|
-
|
|
128
|
-
### 3. Service Tests
|
|
129
|
-
|
|
130
|
-
Unit tests for business logic:
|
|
131
|
-
- CRUD operations
|
|
132
|
-
- Error handling
|
|
133
|
-
- Validation logic
|
|
134
|
-
|
|
135
|
-
### 4. Entity Tests
|
|
136
|
-
|
|
137
|
-
Domain model tests:
|
|
138
|
-
- Factory methods
|
|
139
|
-
- Property validation
|
|
140
|
-
- State transitions
|
|
141
|
-
- Soft delete
|
|
142
|
-
|
|
143
|
-
### 5. Validator Tests
|
|
144
|
-
|
|
145
|
-
Input validation:
|
|
146
|
-
- Code format validation
|
|
147
|
-
- Name constraints
|
|
148
|
-
- Security rules (XSS, SQL injection detection)
|
|
149
|
-
|
|
150
|
-
### 6. Repository Tests
|
|
151
|
-
|
|
152
|
-
Data access tests:
|
|
153
|
-
- Query correctness
|
|
154
|
-
- Tenant filtering
|
|
155
|
-
- Pagination
|
|
156
|
-
- Indexes
|
|
157
|
-
|
|
158
|
-
### 7. Security Tests
|
|
159
|
-
|
|
160
|
-
OWASP coverage:
|
|
161
|
-
- Authentication bypass attempts
|
|
162
|
-
- Authorization bypass attempts
|
|
163
|
-
- SQL injection attempts
|
|
164
|
-
- XSS payload handling
|
|
165
|
-
- CSRF token validation
|
|
166
|
-
- Tenant isolation breach attempts
|
|
167
|
-
- Header injection attempts
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Build & Run Checks (BLOCKING)
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
# Build
|
|
175
|
-
dotnet build tests/{SolutionName}.Tests/{SolutionName}.Tests.csproj
|
|
176
|
-
|
|
177
|
-
# Run
|
|
178
|
-
dotnet test tests/{SolutionName}.Tests/{SolutionName}.Tests.csproj --no-build --verbosity normal
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**ALL tests MUST pass.** If tests fail:
|
|
182
|
-
1. Read the failure output carefully
|
|
183
|
-
2. Fix the failing tests or the code they test
|
|
184
|
-
3. Re-run until all tests pass
|
|
185
|
-
4. Do NOT proceed to the next step until all tests are green
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## Frontend Test Categories
|
|
190
|
-
|
|
191
|
-
| File | Category | Focus |
|
|
192
|
-
|------|----------|-------|
|
|
193
|
-
| `{EntityName}Page.test.tsx` | Page | Loading, error, render with data |
|
|
194
|
-
| `{EntityName}ListView.test.tsx` | List | Pagination, filtering, view toggle |
|
|
195
|
-
| `{EntityName}DetailPage.test.tsx` | Detail | Tab switching, back navigation |
|
|
196
|
-
| `use{EntityName}Preferences.test.ts` | Hooks | State persistence, local storage |
|
|
197
|
-
| `{entityName}Api.test.ts` | API Client | MSW mocking, HTTP methods |
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## Validation Checklist
|
|
202
|
-
|
|
203
|
-
- [ ] All test methods follow `{Method}_When{Condition}_Should{Result}` naming
|
|
204
|
-
- [ ] All tests use Arrange-Act-Assert structure
|
|
205
|
-
- [ ] FluentAssertions used throughout (not Assert.Equal)
|
|
206
|
-
- [ ] Moq used for mock-based tests only
|
|
207
|
-
- [ ] Minimum test count met per category
|
|
208
|
-
- [ ] Real integration tests verify DB persistence
|
|
209
|
-
- [ ] Security tests cover OWASP top 10 issues
|
|
210
|
-
- [ ] Backend tests build successfully
|
|
211
|
-
- [ ] **ALL backend tests pass**
|
|
212
|
-
- [ ] Frontend tests build successfully
|
|
213
|
-
- [ ] **ALL frontend tests pass**
|
|
1
|
+
# Test Generation: Coverage Requirements & Categories
|
|
2
|
+
|
|
3
|
+
> Referenced from `steps/step-07-tests.md` — Test coverage minimums and category definitions.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Minimum Test Coverage Per Category
|
|
8
|
+
|
|
9
|
+
| Category | Minimum Tests | Focus Areas |
|
|
10
|
+
|----------|---------------|------------|
|
|
11
|
+
| Controller (mock) | 10 | CRUD routing, auth/tenant handling, error responses |
|
|
12
|
+
| Controller (real integration) | 8 | CRUD with actual DB persistence, tenant isolation, 404/409 cases |
|
|
13
|
+
| Service | 8 | Business logic, CRUD, error handling, edge cases |
|
|
14
|
+
| Entity | 5 | Factory method, property updates, validation, soft delete |
|
|
15
|
+
| Validator | 8 | Code validation, name validation, security rules |
|
|
16
|
+
| Repository | 8 | CRUD, tenant filtering, pagination, indexes |
|
|
17
|
+
| Security | 10 | Auth bypass attempts, injection attacks, header validation |
|
|
18
|
+
|
|
19
|
+
**Total minimum:** ~67 tests per entity
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Real Integration Test Coverage
|
|
24
|
+
|
|
25
|
+
Integration tests (with actual DB):
|
|
26
|
+
- GET all → 200 with list
|
|
27
|
+
- GET by ID → 200 when exists, 404 when not
|
|
28
|
+
- POST → 201/200 when valid, persist to DB, read back to verify
|
|
29
|
+
- POST → 400 when invalid data
|
|
30
|
+
- POST → 409 when duplicate code
|
|
31
|
+
- PUT → 200 when valid, persist changes, read back to verify
|
|
32
|
+
- PUT → 404 when not exists
|
|
33
|
+
- DELETE → 204 when exists
|
|
34
|
+
- DELETE → 404 when not exists
|
|
35
|
+
- Tenant isolation → create in tenant A, invisible in tenant B (REAL DB)
|
|
36
|
+
- Authorization → 401 when not authenticated
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Test Naming Convention (BLOCKING)
|
|
41
|
+
|
|
42
|
+
All test methods MUST follow: `{Method}_When{Condition}_Should{Result}`
|
|
43
|
+
|
|
44
|
+
**FORBIDDEN patterns:**
|
|
45
|
+
- `Test1`, `Test2`, `TestMethod`, `MyTest`
|
|
46
|
+
- `Should_Return_OK`, `test_get_all`
|
|
47
|
+
|
|
48
|
+
**REQUIRED pattern:**
|
|
49
|
+
```csharp
|
|
50
|
+
GetAll_WhenCalled_ShouldReturn200WithList
|
|
51
|
+
Create_WhenDuplicateCode_ShouldThrowException
|
|
52
|
+
Delete_WhenNotAuthenticated_ShouldReturn401
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Test Structure (BLOCKING)
|
|
58
|
+
|
|
59
|
+
All tests MUST follow Arrange-Act-Assert:
|
|
60
|
+
|
|
61
|
+
```csharp
|
|
62
|
+
// CORRECT
|
|
63
|
+
[Fact]
|
|
64
|
+
public async Task GetById_WhenExists_ShouldReturn200()
|
|
65
|
+
{
|
|
66
|
+
// Arrange
|
|
67
|
+
var id = Guid.NewGuid();
|
|
68
|
+
// ... setup
|
|
69
|
+
|
|
70
|
+
// Act
|
|
71
|
+
var response = await _client.GetAsync($"/api/{entityCode}/{id}");
|
|
72
|
+
|
|
73
|
+
// Assert
|
|
74
|
+
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// FORBIDDEN - No structure
|
|
78
|
+
[Fact]
|
|
79
|
+
public void TestGetById()
|
|
80
|
+
{
|
|
81
|
+
var response = _client.GetAsync("/api/product/1");
|
|
82
|
+
Assert.Equal(200, response.StatusCode);
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Dependencies Check (BLOCKING)
|
|
89
|
+
|
|
90
|
+
Verify test project uses:
|
|
91
|
+
- `FluentAssertions` (NOT `Assert.Equal`)
|
|
92
|
+
- `Moq` (NOT manual fakes)
|
|
93
|
+
- `xunit` (NOT NUnit or MSTest)
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Test Categories
|
|
98
|
+
|
|
99
|
+
### 1. Controller Mock Tests
|
|
100
|
+
|
|
101
|
+
Unit tests with mocked dependencies:
|
|
102
|
+
- Routing validation
|
|
103
|
+
- Authentication/Authorization
|
|
104
|
+
- Error response formatting
|
|
105
|
+
- Input validation
|
|
106
|
+
|
|
107
|
+
```csharp
|
|
108
|
+
[Fact]
|
|
109
|
+
public async Task GetAll_WhenCalled_ShouldReturn200WithList()
|
|
110
|
+
{
|
|
111
|
+
// Mock service
|
|
112
|
+
_mockService.Setup(s => s.GetAllAsync(It.IsAny<CancellationToken>()))
|
|
113
|
+
.ReturnsAsync(new List<ProductDto>());
|
|
114
|
+
|
|
115
|
+
// Act & Assert
|
|
116
|
+
...
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 2. Controller Integration Tests
|
|
121
|
+
|
|
122
|
+
REAL tests with actual DB (via WebApplicationFactory):
|
|
123
|
+
- Full HTTP flow
|
|
124
|
+
- Database persistence
|
|
125
|
+
- Tenant isolation
|
|
126
|
+
- Query validation
|
|
127
|
+
|
|
128
|
+
### 3. Service Tests
|
|
129
|
+
|
|
130
|
+
Unit tests for business logic:
|
|
131
|
+
- CRUD operations
|
|
132
|
+
- Error handling
|
|
133
|
+
- Validation logic
|
|
134
|
+
|
|
135
|
+
### 4. Entity Tests
|
|
136
|
+
|
|
137
|
+
Domain model tests:
|
|
138
|
+
- Factory methods
|
|
139
|
+
- Property validation
|
|
140
|
+
- State transitions
|
|
141
|
+
- Soft delete
|
|
142
|
+
|
|
143
|
+
### 5. Validator Tests
|
|
144
|
+
|
|
145
|
+
Input validation:
|
|
146
|
+
- Code format validation
|
|
147
|
+
- Name constraints
|
|
148
|
+
- Security rules (XSS, SQL injection detection)
|
|
149
|
+
|
|
150
|
+
### 6. Repository Tests
|
|
151
|
+
|
|
152
|
+
Data access tests:
|
|
153
|
+
- Query correctness
|
|
154
|
+
- Tenant filtering
|
|
155
|
+
- Pagination
|
|
156
|
+
- Indexes
|
|
157
|
+
|
|
158
|
+
### 7. Security Tests
|
|
159
|
+
|
|
160
|
+
OWASP coverage:
|
|
161
|
+
- Authentication bypass attempts
|
|
162
|
+
- Authorization bypass attempts
|
|
163
|
+
- SQL injection attempts
|
|
164
|
+
- XSS payload handling
|
|
165
|
+
- CSRF token validation
|
|
166
|
+
- Tenant isolation breach attempts
|
|
167
|
+
- Header injection attempts
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Build & Run Checks (BLOCKING)
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Build
|
|
175
|
+
dotnet build tests/{SolutionName}.Tests/{SolutionName}.Tests.csproj
|
|
176
|
+
|
|
177
|
+
# Run
|
|
178
|
+
dotnet test tests/{SolutionName}.Tests/{SolutionName}.Tests.csproj --no-build --verbosity normal
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**ALL tests MUST pass.** If tests fail:
|
|
182
|
+
1. Read the failure output carefully
|
|
183
|
+
2. Fix the failing tests or the code they test
|
|
184
|
+
3. Re-run until all tests pass
|
|
185
|
+
4. Do NOT proceed to the next step until all tests are green
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Frontend Test Categories
|
|
190
|
+
|
|
191
|
+
| File | Category | Focus |
|
|
192
|
+
|------|----------|-------|
|
|
193
|
+
| `{EntityName}Page.test.tsx` | Page | Loading, error, render with data |
|
|
194
|
+
| `{EntityName}ListView.test.tsx` | List | Pagination, filtering, view toggle |
|
|
195
|
+
| `{EntityName}DetailPage.test.tsx` | Detail | Tab switching, back navigation |
|
|
196
|
+
| `use{EntityName}Preferences.test.ts` | Hooks | State persistence, local storage |
|
|
197
|
+
| `{entityName}Api.test.ts` | API Client | MSW mocking, HTTP methods |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Validation Checklist
|
|
202
|
+
|
|
203
|
+
- [ ] All test methods follow `{Method}_When{Condition}_Should{Result}` naming
|
|
204
|
+
- [ ] All tests use Arrange-Act-Assert structure
|
|
205
|
+
- [ ] FluentAssertions used throughout (not Assert.Equal)
|
|
206
|
+
- [ ] Moq used for mock-based tests only
|
|
207
|
+
- [ ] Minimum test count met per category
|
|
208
|
+
- [ ] Real integration tests verify DB persistence
|
|
209
|
+
- [ ] Security tests cover OWASP top 10 issues
|
|
210
|
+
- [ ] Backend tests build successfully
|
|
211
|
+
- [ ] **ALL backend tests pass**
|
|
212
|
+
- [ ] Frontend tests build successfully
|
|
213
|
+
- [ ] **ALL frontend tests pass**
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
# Frontend Test Infrastructure & Generation
|
|
2
|
-
|
|
3
|
-
> Reference for step-07-tests.md — Vitest + Testing Library + MSW setup and component test generation.
|
|
4
|
-
|
|
5
|
-
## 1. Check Frontend Test Infrastructure
|
|
6
|
-
|
|
7
|
-
Verify that the frontend project has Vitest + Testing Library configured:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Check if vitest.config.ts exists in the web/frontend project
|
|
11
|
-
ls {WebProjectPath}/vitest.config.ts 2>/dev/null
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
If NOT found, deploy the test infrastructure:
|
|
15
|
-
|
|
16
|
-
### Install packages
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
cd {WebProjectPath}
|
|
20
|
-
npm install -D vitest @testing-library/react @testing-library/jest-dom @testing-library/user-event jsdom msw
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Copy infrastructure files from SmartStack templates
|
|
24
|
-
|
|
25
|
-
| Template Source | Destination |
|
|
26
|
-
|----------------|-------------|
|
|
27
|
-
| `templates/project/test-frontend/vitest.config.ts` | `{WebProjectPath}/vitest.config.ts` |
|
|
28
|
-
| `templates/project/test-frontend/setup.ts` | `{WebProjectPath}/src/test/setup.ts` |
|
|
29
|
-
| `templates/project/test-frontend/test-utils.tsx` | `{WebProjectPath}/src/test/test-utils.tsx` |
|
|
30
|
-
| `templates/project/test-frontend/msw/server.ts` | `{WebProjectPath}/src/test/msw/server.ts` |
|
|
31
|
-
| `templates/project/test-frontend/msw/handlers.ts` | `{WebProjectPath}/src/test/msw/handlers.ts` |
|
|
32
|
-
|
|
33
|
-
### Add test scripts to `package.json` (if missing)
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"scripts": {
|
|
38
|
-
"test": "vitest run",
|
|
39
|
-
"test:watch": "vitest",
|
|
40
|
-
"test:coverage": "vitest run --coverage"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## 2. Generate Frontend Tests
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
Tool: mcp__smartstack__scaffold_frontend_tests
|
|
49
|
-
Args:
|
|
50
|
-
name: "{entity_name}"
|
|
51
|
-
components: ["all"]
|
|
52
|
-
apiRoute: "/api/{entity_code}"
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
This generates:
|
|
56
|
-
- `src/pages/{application}/__tests__/{EntityName}Page.test.tsx` - Page rendering, loading, error states
|
|
57
|
-
- `src/pages/{application}/__tests__/{EntityName}ListView.test.tsx` - List display, pagination, view toggle
|
|
58
|
-
- `src/pages/{application}/__tests__/{EntityName}DetailPage.test.tsx` - Detail view, tabs, back navigation
|
|
59
|
-
- `src/hooks/__tests__/use{EntityName}Preferences.test.ts` - Preference get/set
|
|
60
|
-
- `src/services/api/__tests__/{entityName}Api.test.ts` - API client calls with MSW
|
|
61
|
-
|
|
62
|
-
## 3. Run Frontend Tests (BLOCKING)
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
cd {WebProjectPath}
|
|
66
|
-
npx vitest run --reporter=default
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**ALL frontend tests MUST pass.** If tests fail:
|
|
70
|
-
1. Read the failure output carefully
|
|
71
|
-
2. Fix the failing tests or the components they test
|
|
72
|
-
3. Re-run until all tests pass
|
|
73
|
-
4. Do NOT proceed to the next step until all tests are green
|
|
1
|
+
# Frontend Test Infrastructure & Generation
|
|
2
|
+
|
|
3
|
+
> Reference for step-07-tests.md — Vitest + Testing Library + MSW setup and component test generation.
|
|
4
|
+
|
|
5
|
+
## 1. Check Frontend Test Infrastructure
|
|
6
|
+
|
|
7
|
+
Verify that the frontend project has Vitest + Testing Library configured:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Check if vitest.config.ts exists in the web/frontend project
|
|
11
|
+
ls {WebProjectPath}/vitest.config.ts 2>/dev/null
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
If NOT found, deploy the test infrastructure:
|
|
15
|
+
|
|
16
|
+
### Install packages
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cd {WebProjectPath}
|
|
20
|
+
npm install -D vitest @testing-library/react @testing-library/jest-dom @testing-library/user-event jsdom msw
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Copy infrastructure files from SmartStack templates
|
|
24
|
+
|
|
25
|
+
| Template Source | Destination |
|
|
26
|
+
|----------------|-------------|
|
|
27
|
+
| `templates/project/test-frontend/vitest.config.ts` | `{WebProjectPath}/vitest.config.ts` |
|
|
28
|
+
| `templates/project/test-frontend/setup.ts` | `{WebProjectPath}/src/test/setup.ts` |
|
|
29
|
+
| `templates/project/test-frontend/test-utils.tsx` | `{WebProjectPath}/src/test/test-utils.tsx` |
|
|
30
|
+
| `templates/project/test-frontend/msw/server.ts` | `{WebProjectPath}/src/test/msw/server.ts` |
|
|
31
|
+
| `templates/project/test-frontend/msw/handlers.ts` | `{WebProjectPath}/src/test/msw/handlers.ts` |
|
|
32
|
+
|
|
33
|
+
### Add test scripts to `package.json` (if missing)
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"scripts": {
|
|
38
|
+
"test": "vitest run",
|
|
39
|
+
"test:watch": "vitest",
|
|
40
|
+
"test:coverage": "vitest run --coverage"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 2. Generate Frontend Tests
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Tool: mcp__smartstack__scaffold_frontend_tests
|
|
49
|
+
Args:
|
|
50
|
+
name: "{entity_name}"
|
|
51
|
+
components: ["all"]
|
|
52
|
+
apiRoute: "/api/{entity_code}"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This generates:
|
|
56
|
+
- `src/pages/{application}/__tests__/{EntityName}Page.test.tsx` - Page rendering, loading, error states
|
|
57
|
+
- `src/pages/{application}/__tests__/{EntityName}ListView.test.tsx` - List display, pagination, view toggle
|
|
58
|
+
- `src/pages/{application}/__tests__/{EntityName}DetailPage.test.tsx` - Detail view, tabs, back navigation
|
|
59
|
+
- `src/hooks/__tests__/use{EntityName}Preferences.test.ts` - Preference get/set
|
|
60
|
+
- `src/services/api/__tests__/{entityName}Api.test.ts` - API client calls with MSW
|
|
61
|
+
|
|
62
|
+
## 3. Run Frontend Tests (BLOCKING)
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd {WebProjectPath}
|
|
66
|
+
npx vitest run --reporter=default
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**ALL frontend tests MUST pass.** If tests fail:
|
|
70
|
+
1. Read the failure output carefully
|
|
71
|
+
2. Fix the failing tests or the components they test
|
|
72
|
+
3. Re-run until all tests pass
|
|
73
|
+
4. Do NOT proceed to the next step until all tests are green
|