agentic-qe 3.7.8 → 3.7.10

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.
Files changed (569) hide show
  1. package/.claude/skills/.validation/README.md +111 -111
  2. package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
  3. package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -252
  4. package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -413
  5. package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -350
  6. package/.claude/skills/.validation/schemas/skill-eval.schema.json +462 -462
  7. package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
  8. package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
  9. package/.claude/skills/.validation/schemas/skill-output.template.json +610 -610
  10. package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -250
  11. package/.claude/skills/.validation/templates/eval.template.yaml +366 -366
  12. package/.claude/skills/.validation/templates/schemas/output.json +145 -145
  13. package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
  14. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
  15. package/.claude/skills/.validation/test-data/invalid-output.json +5 -5
  16. package/.claude/skills/.validation/test-data/minimal-output.json +9 -9
  17. package/.claude/skills/.validation/test-data/sample-output.json +73 -73
  18. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
  19. package/.claude/skills/a11y-ally/schemas/output.json +549 -549
  20. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
  21. package/.claude/skills/accessibility-testing/schemas/output.json +776 -776
  22. package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -191
  23. package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -577
  24. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
  25. package/.claude/skills/api-testing-patterns/schemas/output.json +845 -845
  26. package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
  27. package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -291
  28. package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -288
  29. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
  30. package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
  31. package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
  32. package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
  33. package/.claude/skills/code-review-quality/schemas/output.json +264 -264
  34. package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
  35. package/.claude/skills/compatibility-testing/schemas/output.json +551 -551
  36. package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
  37. package/.claude/skills/compliance-testing/schemas/output.json +845 -845
  38. package/.claude/skills/consultancy-practices/schemas/output.json +282 -282
  39. package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -748
  40. package/.claude/skills/contract-testing/schemas/output.json +638 -638
  41. package/.claude/skills/database-testing/evals/database-testing.yaml +968 -968
  42. package/.claude/skills/database-testing/schemas/output.json +1446 -1446
  43. package/.claude/skills/debug-loop/SKILL.md +61 -61
  44. package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -735
  45. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  46. package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -0
  47. package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  48. package/.claude/skills/iterative-loop/SKILL.md +371 -371
  49. package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -544
  50. package/.claude/skills/localization-testing/schemas/output.json +325 -325
  51. package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -798
  52. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  53. package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -0
  54. package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  55. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
  56. package/.claude/skills/mobile-testing/schemas/output.json +318 -318
  57. package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
  58. package/.claude/skills/mutation-testing/schemas/output.json +707 -707
  59. package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -295
  60. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
  61. package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -369
  62. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
  63. package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
  64. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
  65. package/.claude/skills/n8n-security-testing/schemas/output.json +293 -293
  66. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
  67. package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
  68. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
  69. package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
  70. package/.claude/skills/observability-testing-patterns/SKILL.md +930 -930
  71. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  72. package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -0
  73. package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  74. package/.claude/skills/pentest-validation/SKILL.md +268 -268
  75. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
  76. package/.claude/skills/pentest-validation/schemas/output.json +281 -281
  77. package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -144
  78. package/.claude/skills/performance-analysis/schemas/output.json +588 -588
  79. package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -772
  80. package/.claude/skills/performance-testing/schemas/output.json +1184 -1184
  81. package/.claude/skills/pr-review/SKILL.md +61 -61
  82. package/.claude/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
  83. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  84. package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  85. package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  86. package/.claude/skills/qcsd-development-swarm/SKILL.md +2154 -2154
  87. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  88. package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -0
  89. package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  90. package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
  91. package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
  92. package/.claude/skills/qcsd-production-swarm/SKILL.md +2781 -2781
  93. package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
  94. package/.claude/skills/qcsd-production-swarm/schemas/output.json +505 -505
  95. package/.claude/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
  96. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
  97. package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -314
  98. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
  99. package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -315
  100. package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
  101. package/.claude/skills/qe-contract-testing/schemas/output.json +295 -295
  102. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
  103. package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -286
  104. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
  105. package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -283
  106. package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -264
  107. package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
  108. package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -288
  109. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
  110. package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -550
  111. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
  112. package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -587
  113. package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
  114. package/.claude/skills/qe-security-compliance/schemas/output.json +498 -498
  115. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
  116. package/.claude/skills/qe-test-execution/schemas/output.json +529 -529
  117. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
  118. package/.claude/skills/qe-test-generation/schemas/output.json +439 -439
  119. package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
  120. package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -491
  121. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
  122. package/.claude/skills/quality-metrics/schemas/output.json +403 -403
  123. package/.claude/skills/refactoring-patterns/schemas/output.json +475 -475
  124. package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -504
  125. package/.claude/skills/regression-testing/schemas/output.json +311 -311
  126. package/.claude/skills/release/SKILL.md +347 -347
  127. package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
  128. package/.claude/skills/risk-based-testing/schemas/output.json +480 -480
  129. package/.claude/skills/security-testing/evals/security-testing.yaml +789 -789
  130. package/.claude/skills/security-testing/schemas/output.json +879 -879
  131. package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
  132. package/.claude/skills/security-visual-testing/schemas/output.json +486 -486
  133. package/.claude/skills/sfdipot-product-factors/SKILL.md +239 -239
  134. package/.claude/skills/sherlock-review/schemas/output.json +297 -297
  135. package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
  136. package/.claude/skills/shift-left-testing/schemas/output.json +459 -459
  137. package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
  138. package/.claude/skills/shift-right-testing/schemas/output.json +418 -418
  139. package/.claude/skills/skills-manifest.json +1 -1
  140. package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -444
  141. package/.claude/skills/technical-writing/schemas/output.json +268 -268
  142. package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
  143. package/.claude/skills/test-automation-strategy/schemas/output.json +444 -444
  144. package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -504
  145. package/.claude/skills/test-data-management/schemas/output.json +284 -284
  146. package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
  147. package/.claude/skills/test-design-techniques/schemas/output.json +295 -295
  148. package/.claude/skills/test-environment-management/schemas/output.json +310 -310
  149. package/.claude/skills/test-idea-rewriting/SKILL.md +229 -229
  150. package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
  151. package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -329
  152. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
  153. package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -84
  154. package/.claude/skills/testability-scoring/schemas/output.json +606 -606
  155. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
  156. package/.claude/skills/trust-tier-manifest.json +78 -7
  157. package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -150
  158. package/.claude/skills/verification-quality/schemas/output.json +432 -432
  159. package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
  160. package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -294
  161. package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
  162. package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -150
  163. package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
  164. package/CHANGELOG.md +34 -0
  165. package/README.md +169 -900
  166. package/assets/agents/v3/helpers/quality-criteria/evidence-classification.md +116 -116
  167. package/assets/agents/v3/helpers/quality-criteria/htsm-categories.md +139 -139
  168. package/assets/governance/constitution.md +202 -202
  169. package/assets/governance/shards/chaos-resilience.shard.md +221 -221
  170. package/assets/governance/shards/code-intelligence.shard.md +178 -178
  171. package/assets/governance/shards/contract-testing.shard.md +206 -206
  172. package/assets/governance/shards/coverage-analysis.shard.md +146 -146
  173. package/assets/governance/shards/defect-intelligence.shard.md +182 -182
  174. package/assets/governance/shards/learning-optimization.shard.md +248 -248
  175. package/assets/governance/shards/quality-assessment.shard.md +165 -165
  176. package/assets/governance/shards/requirements-validation.shard.md +177 -177
  177. package/assets/governance/shards/security-compliance.shard.md +196 -196
  178. package/assets/governance/shards/test-execution.shard.md +156 -156
  179. package/assets/governance/shards/test-generation.shard.md +128 -128
  180. package/assets/governance/shards/visual-accessibility.shard.md +209 -209
  181. package/assets/hooks/cross-phase-memory.yaml +253 -253
  182. package/assets/patterns/adr-051-booster-patterns.json +78 -78
  183. package/assets/patterns/adr-051-embedding-patterns.json +147 -147
  184. package/assets/patterns/adr-051-integration-summary.json +62 -62
  185. package/assets/patterns/adr-051-reasoning-patterns.json +166 -166
  186. package/assets/patterns/adr-051-router-patterns.json +113 -113
  187. package/assets/patterns/index.json +136 -136
  188. package/assets/skills/.validation/README.md +111 -111
  189. package/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
  190. package/assets/skills/.validation/examples/performance-testing-output.example.json +252 -252
  191. package/assets/skills/.validation/examples/security-testing-output.example.json +413 -413
  192. package/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -350
  193. package/assets/skills/.validation/schemas/skill-eval.schema.json +462 -462
  194. package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
  195. package/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
  196. package/assets/skills/.validation/schemas/skill-output.template.json +610 -610
  197. package/assets/skills/.validation/skill-validation-mcp-integration.md +250 -250
  198. package/assets/skills/.validation/templates/eval.template.yaml +366 -366
  199. package/assets/skills/.validation/templates/schemas/output.json +145 -145
  200. package/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
  201. package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
  202. package/assets/skills/.validation/test-data/invalid-output.json +5 -5
  203. package/assets/skills/.validation/test-data/minimal-output.json +9 -9
  204. package/assets/skills/.validation/test-data/sample-output.json +73 -73
  205. package/assets/skills/a11y-ally/SKILL.md +1664 -1658
  206. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -0
  207. package/assets/skills/a11y-ally/schemas/output.json +549 -0
  208. package/assets/skills/a11y-ally/scripts/validate-config.json +42 -0
  209. package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
  210. package/assets/skills/accessibility-testing/schemas/output.json +776 -776
  211. package/assets/skills/accessibility-testing/test-data/sample-output.json +191 -191
  212. package/assets/skills/agentic-quality-engineering/schemas/output.json +577 -577
  213. package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
  214. package/assets/skills/api-testing-patterns/schemas/output.json +845 -845
  215. package/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
  216. package/assets/skills/brutal-honesty-review/SKILL.md +5 -0
  217. package/assets/skills/brutal-honesty-review/schemas/output.json +291 -0
  218. package/assets/skills/brutal-honesty-review/scripts/validate-config.json +34 -0
  219. package/assets/skills/bug-reporting-excellence/schemas/output.json +288 -288
  220. package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
  221. package/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
  222. package/assets/skills/cicd-pipeline-qe-orchestrator/README.md +1 -1
  223. package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -0
  224. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -0
  225. package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -0
  226. package/assets/skills/cicd-pipeline-qe-orchestrator/scripts/validate-config.json +42 -0
  227. package/assets/skills/code-review-quality/schemas/output.json +264 -264
  228. package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
  229. package/assets/skills/compatibility-testing/schemas/output.json +551 -551
  230. package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
  231. package/assets/skills/compliance-testing/schemas/output.json +845 -845
  232. package/assets/skills/consultancy-practices/schemas/output.json +282 -282
  233. package/assets/skills/contract-testing/evals/contract-testing.yaml +748 -748
  234. package/assets/skills/contract-testing/schemas/output.json +638 -638
  235. package/assets/skills/database-testing/evals/database-testing.yaml +968 -968
  236. package/assets/skills/database-testing/schemas/output.json +1446 -1446
  237. package/assets/skills/debug-loop/SKILL.md +61 -61
  238. package/assets/skills/enterprise-integration-testing/SKILL.md +735 -735
  239. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  240. package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -0
  241. package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  242. package/assets/skills/localization-testing/evals/localization-testing.yaml +544 -544
  243. package/assets/skills/localization-testing/schemas/output.json +325 -325
  244. package/assets/skills/middleware-testing-patterns/SKILL.md +798 -798
  245. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  246. package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -0
  247. package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  248. package/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
  249. package/assets/skills/mobile-testing/schemas/output.json +318 -318
  250. package/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
  251. package/assets/skills/mutation-testing/schemas/output.json +707 -707
  252. package/assets/skills/mutation-testing/test-data/sample-output.json +295 -295
  253. package/assets/skills/n8n-expression-testing/SKILL.md +6 -0
  254. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -0
  255. package/assets/skills/n8n-expression-testing/schemas/output.json +369 -0
  256. package/assets/skills/n8n-expression-testing/scripts/validate-config.json +39 -0
  257. package/assets/skills/n8n-integration-testing-patterns/SKILL.md +6 -0
  258. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -0
  259. package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -0
  260. package/assets/skills/n8n-integration-testing-patterns/scripts/validate-config.json +34 -0
  261. package/assets/skills/n8n-security-testing/SKILL.md +6 -0
  262. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -0
  263. package/assets/skills/n8n-security-testing/schemas/output.json +293 -0
  264. package/assets/skills/n8n-security-testing/scripts/validate-config.json +34 -0
  265. package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +6 -0
  266. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -0
  267. package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -0
  268. package/assets/skills/n8n-trigger-testing-strategies/scripts/validate-config.json +34 -0
  269. package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +6 -0
  270. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -0
  271. package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -0
  272. package/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate-config.json +35 -0
  273. package/assets/skills/observability-testing-patterns/SKILL.md +930 -930
  274. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  275. package/assets/skills/observability-testing-patterns/schemas/output.json +58 -0
  276. package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  277. package/assets/skills/pentest-validation/SKILL.md +268 -268
  278. package/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
  279. package/assets/skills/pentest-validation/schemas/output.json +281 -281
  280. package/assets/skills/pentest-validation/scripts/validate-config.json +12 -0
  281. package/assets/skills/performance-testing/evals/performance-testing.yaml +772 -772
  282. package/assets/skills/performance-testing/schemas/output.json +1184 -1184
  283. package/assets/skills/pr-review/SKILL.md +61 -61
  284. package/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
  285. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  286. package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  287. package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  288. package/assets/skills/qcsd-development-swarm/SKILL.md +2154 -2154
  289. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  290. package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -0
  291. package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  292. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  293. package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -0
  294. package/assets/skills/qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  295. package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -0
  296. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -0
  297. package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -0
  298. package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -0
  299. package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +139 -0
  300. package/assets/skills/qcsd-refinement-swarm/schemas/output.json +811 -0
  301. package/assets/skills/qcsd-refinement-swarm/scripts/validate-config.json +25 -0
  302. package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
  303. package/assets/skills/qe-chaos-resilience/schemas/output.json +314 -314
  304. package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
  305. package/assets/skills/qe-code-intelligence/schemas/output.json +315 -315
  306. package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
  307. package/assets/skills/qe-contract-testing/schemas/output.json +295 -295
  308. package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
  309. package/assets/skills/qe-coverage-analysis/schemas/output.json +286 -286
  310. package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
  311. package/assets/skills/qe-defect-intelligence/schemas/output.json +283 -283
  312. package/assets/skills/qe-iterative-loop/schemas/output.json +264 -264
  313. package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
  314. package/assets/skills/qe-learning-optimization/schemas/output.json +288 -288
  315. package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
  316. package/assets/skills/qe-quality-assessment/schemas/output.json +550 -550
  317. package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
  318. package/assets/skills/qe-requirements-validation/schemas/output.json +587 -587
  319. package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
  320. package/assets/skills/qe-security-compliance/schemas/output.json +498 -498
  321. package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
  322. package/assets/skills/qe-test-execution/schemas/output.json +529 -529
  323. package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
  324. package/assets/skills/qe-test-generation/schemas/output.json +439 -439
  325. package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
  326. package/assets/skills/qe-visual-accessibility/schemas/output.json +491 -491
  327. package/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
  328. package/assets/skills/quality-metrics/schemas/output.json +403 -403
  329. package/assets/skills/refactoring-patterns/schemas/output.json +475 -475
  330. package/assets/skills/regression-testing/evals/regression-testing.yaml +504 -504
  331. package/assets/skills/regression-testing/schemas/output.json +311 -311
  332. package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
  333. package/assets/skills/risk-based-testing/schemas/output.json +480 -480
  334. package/assets/skills/security-testing/evals/security-testing.yaml +789 -789
  335. package/assets/skills/security-testing/schemas/output.json +879 -879
  336. package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
  337. package/assets/skills/security-visual-testing/schemas/output.json +486 -486
  338. package/assets/skills/security-visual-testing/scripts/validate-config.json +45 -0
  339. package/assets/skills/sfdipot-product-factors/SKILL.md +239 -239
  340. package/assets/skills/sherlock-review/SKILL.md +5 -0
  341. package/assets/skills/sherlock-review/schemas/output.json +297 -0
  342. package/assets/skills/sherlock-review/scripts/validate-config.json +35 -0
  343. package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
  344. package/assets/skills/shift-left-testing/schemas/output.json +459 -459
  345. package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
  346. package/assets/skills/shift-right-testing/schemas/output.json +418 -418
  347. package/assets/skills/tdd-london-chicago/schemas/output.json +444 -444
  348. package/assets/skills/technical-writing/schemas/output.json +268 -268
  349. package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
  350. package/assets/skills/test-automation-strategy/schemas/output.json +444 -444
  351. package/assets/skills/test-data-management/evals/test-data-management.yaml +504 -504
  352. package/assets/skills/test-data-management/schemas/output.json +284 -284
  353. package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
  354. package/assets/skills/test-design-techniques/schemas/output.json +295 -295
  355. package/assets/skills/test-environment-management/schemas/output.json +310 -310
  356. package/assets/skills/test-idea-rewriting/SKILL.md +229 -229
  357. package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
  358. package/assets/skills/test-reporting-analytics/schemas/output.json +329 -329
  359. package/assets/skills/testability-scoring/SKILL.md +5 -0
  360. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -0
  361. package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -84
  362. package/assets/skills/testability-scoring/schemas/output.json +606 -0
  363. package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
  364. package/assets/skills/testability-scoring/scripts/validate-config.json +42 -0
  365. package/assets/skills/trust-tier-manifest.json +2404 -0
  366. package/assets/skills/verification-quality/evals/verification-quality.yaml +150 -150
  367. package/assets/skills/verification-quality/schemas/output.json +432 -432
  368. package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
  369. package/assets/skills/visual-testing-advanced/schemas/output.json +294 -294
  370. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -0
  371. package/assets/skills/wms-testing-patterns/schemas/output.json +150 -0
  372. package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -0
  373. package/assets/templates/validation-summary.json +56 -56
  374. package/dist/benchmarks/performance-benchmarks.js +1 -1
  375. package/dist/cli/bundle.js +9158 -2288
  376. package/dist/cli/commands/hooks.d.ts.map +1 -1
  377. package/dist/cli/commands/hooks.js +92 -0
  378. package/dist/cli/commands/hooks.js.map +1 -1
  379. package/dist/cli/commands/mcp.d.ts.map +1 -1
  380. package/dist/cli/commands/mcp.js +11 -9
  381. package/dist/cli/commands/mcp.js.map +1 -1
  382. package/dist/cli/commands/migrate.js +2 -2
  383. package/dist/coordination/constants.d.ts +1 -1
  384. package/dist/coordination/constants.js +1 -1
  385. package/dist/coordination/handlers/coverage-handlers.js +1 -1
  386. package/dist/coordination/handlers/coverage-handlers.js.map +1 -1
  387. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +1 -1
  388. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts.map +1 -1
  389. package/dist/domains/code-intelligence/services/semantic-analyzer.js +1 -1
  390. package/dist/domains/code-intelligence/services/semantic-analyzer.js.map +1 -1
  391. package/dist/domains/coverage-analysis/coordinator.js +1 -1
  392. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +1 -1
  393. package/dist/domains/coverage-analysis/services/coverage-embedder.d.ts +1 -1
  394. package/dist/domains/coverage-analysis/services/coverage-embedder.js +1 -1
  395. package/dist/domains/coverage-analysis/services/gap-detector.js +1 -1
  396. package/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +1 -1
  397. package/dist/domains/coverage-analysis/services/hnsw-index.d.ts +2 -2
  398. package/dist/domains/coverage-analysis/services/hnsw-index.js +3 -3
  399. package/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts +1 -1
  400. package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +1 -1
  401. package/dist/domains/test-execution/services/test-prioritizer.js +1 -1
  402. package/dist/domains/test-generation/context/rust-context-builder.d.ts +31 -0
  403. package/dist/domains/test-generation/context/rust-context-builder.d.ts.map +1 -0
  404. package/dist/domains/test-generation/context/rust-context-builder.js +27 -0
  405. package/dist/domains/test-generation/context/rust-context-builder.js.map +1 -0
  406. package/dist/domains/test-generation/coordinator.js +3 -3
  407. package/dist/domains/test-generation/coordinator.js.map +1 -1
  408. package/dist/domains/test-generation/detectors/mobile-detector.d.ts +41 -0
  409. package/dist/domains/test-generation/detectors/mobile-detector.d.ts.map +1 -0
  410. package/dist/domains/test-generation/detectors/mobile-detector.js +111 -0
  411. package/dist/domains/test-generation/detectors/mobile-detector.js.map +1 -0
  412. package/dist/domains/test-generation/detectors/spring-detector.d.ts +22 -0
  413. package/dist/domains/test-generation/detectors/spring-detector.d.ts.map +1 -0
  414. package/dist/domains/test-generation/detectors/spring-detector.js +37 -0
  415. package/dist/domains/test-generation/detectors/spring-detector.js.map +1 -0
  416. package/dist/domains/test-generation/factories/test-generator-factory.d.ts +2 -1
  417. package/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
  418. package/dist/domains/test-generation/factories/test-generator-factory.js +33 -13
  419. package/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
  420. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts +107 -0
  421. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts.map +1 -0
  422. package/dist/domains/test-generation/generators/flutter-test-generator.js +590 -0
  423. package/dist/domains/test-generation/generators/flutter-test-generator.js.map +1 -0
  424. package/dist/domains/test-generation/generators/go-test-generator.d.ts +139 -0
  425. package/dist/domains/test-generation/generators/go-test-generator.d.ts.map +1 -0
  426. package/dist/domains/test-generation/generators/go-test-generator.js +654 -0
  427. package/dist/domains/test-generation/generators/go-test-generator.js.map +1 -0
  428. package/dist/domains/test-generation/generators/index.d.ts +8 -0
  429. package/dist/domains/test-generation/generators/index.d.ts.map +1 -1
  430. package/dist/domains/test-generation/generators/index.js +8 -0
  431. package/dist/domains/test-generation/generators/index.js.map +1 -1
  432. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts +95 -0
  433. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts.map +1 -0
  434. package/dist/domains/test-generation/generators/jest-rn-generator.js +591 -0
  435. package/dist/domains/test-generation/generators/jest-rn-generator.js.map +1 -0
  436. package/dist/domains/test-generation/generators/junit5-generator.d.ts +107 -0
  437. package/dist/domains/test-generation/generators/junit5-generator.d.ts.map +1 -0
  438. package/dist/domains/test-generation/generators/junit5-generator.js +588 -0
  439. package/dist/domains/test-generation/generators/junit5-generator.js.map +1 -0
  440. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts +109 -0
  441. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts.map +1 -0
  442. package/dist/domains/test-generation/generators/kotlin-junit-generator.js +588 -0
  443. package/dist/domains/test-generation/generators/kotlin-junit-generator.js.map +1 -0
  444. package/dist/domains/test-generation/generators/pytest-generator.d.ts +8 -1
  445. package/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
  446. package/dist/domains/test-generation/generators/pytest-generator.js +57 -0
  447. package/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
  448. package/dist/domains/test-generation/generators/rust-test-generator.d.ts +80 -0
  449. package/dist/domains/test-generation/generators/rust-test-generator.d.ts.map +1 -0
  450. package/dist/domains/test-generation/generators/rust-test-generator.js +442 -0
  451. package/dist/domains/test-generation/generators/rust-test-generator.js.map +1 -0
  452. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts +97 -0
  453. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts.map +1 -0
  454. package/dist/domains/test-generation/generators/swift-testing-generator.js +482 -0
  455. package/dist/domains/test-generation/generators/swift-testing-generator.js.map +1 -0
  456. package/dist/domains/test-generation/generators/xunit-generator.d.ts +110 -0
  457. package/dist/domains/test-generation/generators/xunit-generator.d.ts.map +1 -0
  458. package/dist/domains/test-generation/generators/xunit-generator.js +611 -0
  459. package/dist/domains/test-generation/generators/xunit-generator.js.map +1 -0
  460. package/dist/domains/test-generation/interfaces.d.ts +11 -2
  461. package/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  462. package/dist/domains/test-generation/prompts/language-prompts.d.ts +29 -0
  463. package/dist/domains/test-generation/prompts/language-prompts.d.ts.map +1 -0
  464. package/dist/domains/test-generation/prompts/language-prompts.js +135 -0
  465. package/dist/domains/test-generation/prompts/language-prompts.js.map +1 -0
  466. package/dist/domains/test-generation/services/compilation-validator.d.ts +43 -0
  467. package/dist/domains/test-generation/services/compilation-validator.d.ts.map +1 -0
  468. package/dist/domains/test-generation/services/compilation-validator.js +134 -0
  469. package/dist/domains/test-generation/services/compilation-validator.js.map +1 -0
  470. package/dist/domains/test-generation/services/index.d.ts +2 -1
  471. package/dist/domains/test-generation/services/index.d.ts.map +1 -1
  472. package/dist/domains/test-generation/services/index.js +3 -1
  473. package/dist/domains/test-generation/services/index.js.map +1 -1
  474. package/dist/domains/test-generation/services/test-file-resolver.d.ts +32 -0
  475. package/dist/domains/test-generation/services/test-file-resolver.d.ts.map +1 -0
  476. package/dist/domains/test-generation/services/test-file-resolver.js +159 -0
  477. package/dist/domains/test-generation/services/test-file-resolver.js.map +1 -0
  478. package/dist/domains/test-generation/services/test-generator.d.ts +10 -0
  479. package/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  480. package/dist/domains/test-generation/services/test-generator.js +87 -10
  481. package/dist/domains/test-generation/services/test-generator.js.map +1 -1
  482. package/dist/governance/feature-flags.js +2 -2
  483. package/dist/governance/feature-flags.js.map +1 -1
  484. package/dist/governance/shard-embeddings.js +1 -1
  485. package/dist/init/init-wizard-hooks.d.ts.map +1 -1
  486. package/dist/init/init-wizard-hooks.js +0 -1
  487. package/dist/init/init-wizard-hooks.js.map +1 -1
  488. package/dist/init/phases/07-hooks.d.ts.map +1 -1
  489. package/dist/init/phases/07-hooks.js +0 -2
  490. package/dist/init/phases/07-hooks.js.map +1 -1
  491. package/dist/init/phases/08-mcp.d.ts +8 -4
  492. package/dist/init/phases/08-mcp.d.ts.map +1 -1
  493. package/dist/init/phases/08-mcp.js +13 -31
  494. package/dist/init/phases/08-mcp.js.map +1 -1
  495. package/dist/init/phases/10-workers.js +4 -4
  496. package/dist/init/phases/10-workers.js.map +1 -1
  497. package/dist/init/settings-merge.d.ts.map +1 -1
  498. package/dist/init/settings-merge.js +0 -2
  499. package/dist/init/settings-merge.js.map +1 -1
  500. package/dist/init/token-bootstrap.js +1 -1
  501. package/dist/init/token-bootstrap.js.map +1 -1
  502. package/dist/integrations/rl-suite/algorithms/decision-transformer.js +1 -1
  503. package/dist/kernel/constants.d.ts +2 -2
  504. package/dist/kernel/constants.js +2 -2
  505. package/dist/kernel/hnsw-adapter.js +1 -1
  506. package/dist/kernel/progressive-hnsw-backend.d.ts +2 -2
  507. package/dist/kernel/progressive-hnsw-backend.js +2 -2
  508. package/dist/learning/dream/concept-graph.d.ts +1 -1
  509. package/dist/learning/dream/concept-graph.js +1 -1
  510. package/dist/learning/dream/dream-engine.d.ts +1 -1
  511. package/dist/learning/dream/dream-engine.js +1 -1
  512. package/dist/learning/dream/index.d.ts +1 -1
  513. package/dist/learning/dream/index.js +1 -1
  514. package/dist/learning/dream/types.d.ts +1 -1
  515. package/dist/learning/dream/types.d.ts.map +1 -1
  516. package/dist/learning/dream/types.js +1 -1
  517. package/dist/learning/dream/types.js.map +1 -1
  518. package/dist/learning/token-tracker.js +1 -1
  519. package/dist/learning/token-tracker.js.map +1 -1
  520. package/dist/mcp/bundle.js +7538 -893
  521. package/dist/routing/qe-agent-registry.js +4 -4
  522. package/dist/routing/qe-agent-registry.js.map +1 -1
  523. package/dist/routing/types.d.ts +5 -8
  524. package/dist/routing/types.d.ts.map +1 -1
  525. package/dist/routing/types.js.map +1 -1
  526. package/dist/shared/embeddings/embedding-cache.js +2 -2
  527. package/dist/shared/embeddings/index.d.ts +2 -2
  528. package/dist/shared/embeddings/index.js +2 -2
  529. package/dist/shared/embeddings/nomic-embedder.d.ts +4 -4
  530. package/dist/shared/embeddings/nomic-embedder.js +2 -2
  531. package/dist/shared/embeddings/ollama-client.d.ts +1 -1
  532. package/dist/shared/embeddings/ollama-client.js +2 -2
  533. package/dist/shared/embeddings/ollama-client.js.map +1 -1
  534. package/dist/shared/embeddings/types.d.ts +2 -2
  535. package/dist/shared/embeddings/types.js +2 -2
  536. package/dist/shared/language-detector.d.ts +46 -0
  537. package/dist/shared/language-detector.d.ts.map +1 -0
  538. package/dist/shared/language-detector.js +183 -0
  539. package/dist/shared/language-detector.js.map +1 -0
  540. package/dist/shared/llm/providers/ollama.js +1 -1
  541. package/dist/shared/metrics/code-metrics.d.ts.map +1 -1
  542. package/dist/shared/metrics/code-metrics.js +24 -1
  543. package/dist/shared/metrics/code-metrics.js.map +1 -1
  544. package/dist/shared/parsers/index.d.ts +2 -0
  545. package/dist/shared/parsers/index.d.ts.map +1 -1
  546. package/dist/shared/parsers/index.js +2 -0
  547. package/dist/shared/parsers/index.js.map +1 -1
  548. package/dist/shared/parsers/interfaces.d.ts +81 -0
  549. package/dist/shared/parsers/interfaces.d.ts.map +1 -0
  550. package/dist/shared/parsers/interfaces.js +6 -0
  551. package/dist/shared/parsers/interfaces.js.map +1 -0
  552. package/dist/shared/parsers/multi-language-parser.d.ts +144 -0
  553. package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -0
  554. package/dist/shared/parsers/multi-language-parser.js +1271 -0
  555. package/dist/shared/parsers/multi-language-parser.js.map +1 -0
  556. package/dist/shared/parsers/rust-ownership-analyzer.d.ts +45 -0
  557. package/dist/shared/parsers/rust-ownership-analyzer.d.ts.map +1 -0
  558. package/dist/shared/parsers/rust-ownership-analyzer.js +52 -0
  559. package/dist/shared/parsers/rust-ownership-analyzer.js.map +1 -0
  560. package/dist/shared/parsers/typescript-parser.d.ts +16 -0
  561. package/dist/shared/parsers/typescript-parser.d.ts.map +1 -1
  562. package/dist/shared/parsers/typescript-parser.js +85 -0
  563. package/dist/shared/parsers/typescript-parser.js.map +1 -1
  564. package/dist/shared/types/test-frameworks.d.ts +25 -0
  565. package/dist/shared/types/test-frameworks.d.ts.map +1 -0
  566. package/dist/shared/types/test-frameworks.js +111 -0
  567. package/dist/shared/types/test-frameworks.js.map +1 -0
  568. package/package.json +1 -1
  569. package/scripts/prepare-assets.sh +16 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-test-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/rust-test-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Agentic QE v3 - Swift Testing Generator
3
+ * Strategy implementation for Apple's Swift Testing framework
4
+ *
5
+ * Generates test code using:
6
+ * - `import Testing` (NOT XCTest)
7
+ * - `@Suite struct MyTests { ... }`
8
+ * - `@Test func testSomething() { ... }`
9
+ * - `#expect(value == expected)` macro assertions
10
+ * - `#expect(throws:)` for error testing
11
+ * - Parameterized tests via `@Test(arguments:)`
12
+ * - `async` for async function tests
13
+ *
14
+ * @module test-generation/generators
15
+ */
16
+ import { BaseTestGenerator } from './base-test-generator';
17
+ import type { TestFramework, TestType, FunctionInfo, ClassInfo, TestGenerationContext, CodeAnalysis } from '../interfaces';
18
+ import type { ParsedFile } from '../../../shared/parsers/interfaces.js';
19
+ /**
20
+ * SwiftTestingGenerator - Test generator for Apple's Swift Testing framework
21
+ *
22
+ * Generates idiomatic Swift test code with Swift Testing conventions:
23
+ * - @Suite for grouping tests into structs
24
+ * - @Test for marking test functions
25
+ * - #expect() macro for assertions
26
+ * - Parameterized tests via @Test(arguments:)
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const generator = new SwiftTestingGenerator();
31
+ * const testCode = generator.generateTests({
32
+ * moduleName: 'UserService',
33
+ * importPath: 'UserService',
34
+ * testType: 'unit',
35
+ * patterns: [],
36
+ * analysis: { functions: [...], classes: [...] }
37
+ * });
38
+ * ```
39
+ */
40
+ export declare class SwiftTestingGenerator extends BaseTestGenerator {
41
+ readonly framework: TestFramework;
42
+ /**
43
+ * Convert ParsedFile from multi-language parser to CodeAnalysis.
44
+ * Maps universal parser types to the legacy IFunctionInfo/IClassInfo shape
45
+ * used by generateTests().
46
+ */
47
+ static convertParsedFile(parsed: ParsedFile): CodeAnalysis;
48
+ /**
49
+ * Generate complete Swift Testing test file from analysis
50
+ */
51
+ generateTests(context: TestGenerationContext): string;
52
+ /**
53
+ * Generate tests for a standalone function
54
+ */
55
+ generateFunctionTests(fn: FunctionInfo, _testType: TestType): string;
56
+ /**
57
+ * Generate tests for a class or struct
58
+ */
59
+ generateClassTests(cls: ClassInfo, testType: TestType): string;
60
+ /**
61
+ * Generate stub tests when no AST analysis is available
62
+ */
63
+ generateStubTests(context: TestGenerationContext): string;
64
+ /**
65
+ * Generate coverage-focused tests for specific lines
66
+ */
67
+ generateCoverageTests(moduleName: string, importPath: string, lines: number[]): string;
68
+ /**
69
+ * Generate tests for a method on a class/struct
70
+ */
71
+ private generateMethodTests;
72
+ /**
73
+ * Generate a constructor call string for creating instances in tests
74
+ */
75
+ private generateInitCall;
76
+ /**
77
+ * Generate standalone function tests grouped in a Suite
78
+ */
79
+ private generateStandaloneFunctionSuite;
80
+ /**
81
+ * Generate a Swift assertion based on method name and return type
82
+ */
83
+ private generateSwiftAssertion;
84
+ /**
85
+ * Generate a Swift test value for a parameter
86
+ */
87
+ private generateSwiftTestValue;
88
+ /**
89
+ * Extract the Swift module name from an import path
90
+ */
91
+ private extractModuleName;
92
+ /**
93
+ * Generate Swift-style pattern comment
94
+ */
95
+ private generateSwiftPatternComment;
96
+ }
97
+ //# sourceMappingURL=swift-testing-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-testing-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/swift-testing-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EAET,qBAAqB,EACrB,YAAY,EAEb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAmB;IAEpD;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IA0D1D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IA2BrD;;OAEG;IACH,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAiEpE;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAuD9D;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAqCzD;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EAAE,GACd,MAAM;IAsCT;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAgBvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAIpC"}
@@ -0,0 +1,482 @@
1
+ /**
2
+ * Agentic QE v3 - Swift Testing Generator
3
+ * Strategy implementation for Apple's Swift Testing framework
4
+ *
5
+ * Generates test code using:
6
+ * - `import Testing` (NOT XCTest)
7
+ * - `@Suite struct MyTests { ... }`
8
+ * - `@Test func testSomething() { ... }`
9
+ * - `#expect(value == expected)` macro assertions
10
+ * - `#expect(throws:)` for error testing
11
+ * - Parameterized tests via `@Test(arguments:)`
12
+ * - `async` for async function tests
13
+ *
14
+ * @module test-generation/generators
15
+ */
16
+ import { faker } from '@faker-js/faker';
17
+ import { BaseTestGenerator } from './base-test-generator';
18
+ /**
19
+ * SwiftTestingGenerator - Test generator for Apple's Swift Testing framework
20
+ *
21
+ * Generates idiomatic Swift test code with Swift Testing conventions:
22
+ * - @Suite for grouping tests into structs
23
+ * - @Test for marking test functions
24
+ * - #expect() macro for assertions
25
+ * - Parameterized tests via @Test(arguments:)
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const generator = new SwiftTestingGenerator();
30
+ * const testCode = generator.generateTests({
31
+ * moduleName: 'UserService',
32
+ * importPath: 'UserService',
33
+ * testType: 'unit',
34
+ * patterns: [],
35
+ * analysis: { functions: [...], classes: [...] }
36
+ * });
37
+ * ```
38
+ */
39
+ export class SwiftTestingGenerator extends BaseTestGenerator {
40
+ framework = 'swift-testing';
41
+ /**
42
+ * Convert ParsedFile from multi-language parser to CodeAnalysis.
43
+ * Maps universal parser types to the legacy IFunctionInfo/IClassInfo shape
44
+ * used by generateTests().
45
+ */
46
+ static convertParsedFile(parsed) {
47
+ return {
48
+ functions: parsed.functions.map(f => ({
49
+ name: f.name,
50
+ parameters: f.parameters.map(p => ({
51
+ name: p.name,
52
+ type: p.type,
53
+ optional: p.isOptional,
54
+ defaultValue: p.defaultValue,
55
+ })),
56
+ returnType: f.returnType,
57
+ isAsync: f.isAsync,
58
+ isExported: f.isPublic,
59
+ complexity: f.complexity,
60
+ startLine: f.startLine,
61
+ endLine: f.endLine,
62
+ body: f.body,
63
+ })),
64
+ classes: parsed.classes.map(c => ({
65
+ name: c.name,
66
+ methods: c.methods.map(m => ({
67
+ name: m.name,
68
+ parameters: m.parameters.map(p => ({
69
+ name: p.name,
70
+ type: p.type,
71
+ optional: p.isOptional,
72
+ defaultValue: p.defaultValue,
73
+ })),
74
+ returnType: m.returnType,
75
+ isAsync: m.isAsync,
76
+ isExported: m.isPublic,
77
+ complexity: m.complexity,
78
+ startLine: m.startLine,
79
+ endLine: m.endLine,
80
+ })),
81
+ properties: c.properties.map(p => ({
82
+ name: p.name,
83
+ type: p.type,
84
+ isPrivate: !p.isPublic,
85
+ isReadonly: p.isReadonly,
86
+ })),
87
+ isExported: c.isPublic,
88
+ hasConstructor: c.methods.some(m => m.name === 'init'),
89
+ constructorParams: c.methods.find(m => m.name === 'init')?.parameters.map(p => ({
90
+ name: p.name,
91
+ type: p.type,
92
+ optional: p.isOptional,
93
+ defaultValue: p.defaultValue,
94
+ })),
95
+ decorators: c.decorators,
96
+ })),
97
+ };
98
+ }
99
+ // ============================================================================
100
+ // Core Generation Methods
101
+ // ============================================================================
102
+ /**
103
+ * Generate complete Swift Testing test file from analysis
104
+ */
105
+ generateTests(context) {
106
+ const { moduleName, importPath, testType, patterns, analysis } = context;
107
+ if (!analysis || (analysis.functions.length === 0 && analysis.classes.length === 0)) {
108
+ return this.generateStubTests(context);
109
+ }
110
+ const patternComment = this.generateSwiftPatternComment(patterns);
111
+ let code = `${patternComment}import Testing\n`;
112
+ code += `@testable import ${this.extractModuleName(importPath)}\n\n`;
113
+ // Generate tests for exported classes/structs
114
+ const exportedClasses = analysis.classes.filter(cls => cls.isExported);
115
+ for (const cls of exportedClasses) {
116
+ code += this.generateClassTests(cls, testType);
117
+ code += '\n';
118
+ }
119
+ // Generate tests for exported standalone functions
120
+ const exportedFns = analysis.functions.filter(fn => fn.isExported);
121
+ if (exportedFns.length > 0) {
122
+ code += this.generateStandaloneFunctionSuite(moduleName, exportedFns, testType);
123
+ }
124
+ return code;
125
+ }
126
+ /**
127
+ * Generate tests for a standalone function
128
+ */
129
+ generateFunctionTests(fn, _testType) {
130
+ const params = fn.parameters.map(p => `${p.name}: ${this.generateSwiftTestValue(p)}`).join(', ');
131
+ const isVoid = fn.returnType === 'Void' || fn.returnType === '()' || !fn.returnType;
132
+ const asyncPrefix = fn.isAsync ? 'await ' : '';
133
+ const asyncKeyword = fn.isAsync ? ' async' : '';
134
+ let code = '';
135
+ // Happy path test
136
+ code += ` @Test\n`;
137
+ code += ` func test${this.pascalCase(fn.name)}ValidInput()${asyncKeyword} {\n`;
138
+ if (isVoid) {
139
+ code += ` ${asyncPrefix}${fn.name}(${params})\n`;
140
+ code += ` // void function - verify no crash\n`;
141
+ }
142
+ else {
143
+ code += ` let result = ${asyncPrefix}${fn.name}(${params})\n`;
144
+ code += ` ${this.generateSwiftAssertion(fn.name, fn.returnType)}\n`;
145
+ }
146
+ code += ` }\n\n`;
147
+ // Nil parameter tests for non-optional params
148
+ const bodyText = fn.body || '';
149
+ const hasExplicitThrow = /\bthrow\b/.test(bodyText) || /\bguard\b/.test(bodyText);
150
+ for (const param of fn.parameters) {
151
+ if (!param.optional) {
152
+ const isOptionalType = param.type?.endsWith('?') || param.type?.includes('Optional');
153
+ // Only generate nil tests for types that can be nil (Optional)
154
+ if (isOptionalType || param.type?.endsWith('?')) {
155
+ code += ` @Test\n`;
156
+ code += ` func test${this.pascalCase(fn.name)}Nil${this.pascalCase(param.name)}()${asyncKeyword} {\n`;
157
+ const nilParams = fn.parameters
158
+ .map(p => `${p.name}: ${p.name === param.name ? 'nil' : this.generateSwiftTestValue(p)}`)
159
+ .join(', ');
160
+ if (hasExplicitThrow) {
161
+ code += ` #expect(throws: (any Error).self) {\n`;
162
+ code += ` ${asyncPrefix}try ${fn.name}(${nilParams})\n`;
163
+ code += ` }\n`;
164
+ }
165
+ else {
166
+ code += ` let result = ${asyncPrefix}${fn.name}(${nilParams})\n`;
167
+ code += ` // Function may handle nil gracefully\n`;
168
+ code += ` #expect(result != nil || true) // accepts any behavior\n`;
169
+ }
170
+ code += ` }\n\n`;
171
+ }
172
+ // Throwing test for non-optional params with guard/throw
173
+ if (hasExplicitThrow && !isOptionalType && !param.type?.endsWith('?')) {
174
+ code += ` @Test\n`;
175
+ code += ` func test${this.pascalCase(fn.name)}ThrowsOnInvalid${this.pascalCase(param.name)}()${asyncKeyword} throws {\n`;
176
+ code += ` // Verify error handling for invalid ${param.name}\n`;
177
+ code += ` // TODO: Provide invalid value for ${param.name}: ${param.type || 'unknown'}\n`;
178
+ code += ` }\n\n`;
179
+ }
180
+ }
181
+ }
182
+ return code;
183
+ }
184
+ /**
185
+ * Generate tests for a class or struct
186
+ */
187
+ generateClassTests(cls, testType) {
188
+ const decorators = cls.decorators || [];
189
+ const isObservable = decorators.includes('@Observable');
190
+ let code = `@Suite\n`;
191
+ code += `struct ${cls.name}Tests {\n\n`;
192
+ // Instantiation test
193
+ if (cls.hasConstructor && cls.constructorParams && cls.constructorParams.length > 0) {
194
+ const initParams = cls.constructorParams
195
+ .map(p => `${p.name}: ${this.generateSwiftTestValue(p)}`)
196
+ .join(', ');
197
+ code += ` @Test\n`;
198
+ code += ` func testInit() {\n`;
199
+ code += ` let subject = ${cls.name}(${initParams})\n`;
200
+ code += ` #expect(subject != nil)\n`;
201
+ code += ` }\n\n`;
202
+ // Generate method tests with subject construction
203
+ for (const method of cls.methods) {
204
+ if (method.name !== 'init' && !method.name.startsWith('_')) {
205
+ code += this.generateMethodTests(method, cls);
206
+ }
207
+ }
208
+ }
209
+ else {
210
+ code += ` @Test\n`;
211
+ code += ` func testInit() {\n`;
212
+ code += ` let subject = ${cls.name}()\n`;
213
+ code += ` #expect(subject != nil)\n`;
214
+ code += ` }\n\n`;
215
+ for (const method of cls.methods) {
216
+ if (method.name !== 'init' && !method.name.startsWith('_')) {
217
+ code += this.generateMethodTests(method, cls);
218
+ }
219
+ }
220
+ }
221
+ // Protocol conformance test if implements are available
222
+ if (cls.decorators?.length) {
223
+ const protocols = decorators.filter(d => !d.startsWith('@'));
224
+ for (const proto of protocols) {
225
+ code += ` @Test\n`;
226
+ code += ` func testConformsTo${proto}() {\n`;
227
+ code += ` let subject: any ${proto} = ${cls.name}(${this.generateInitCall(cls)})\n`;
228
+ code += ` #expect(subject is ${proto})\n`;
229
+ code += ` }\n\n`;
230
+ }
231
+ }
232
+ code += `}\n`;
233
+ return code;
234
+ }
235
+ /**
236
+ * Generate stub tests when no AST analysis is available
237
+ */
238
+ generateStubTests(context) {
239
+ const { moduleName, importPath, testType, patterns } = context;
240
+ const patternComment = this.generateSwiftPatternComment(patterns);
241
+ return `${patternComment}import Testing
242
+ @testable import ${this.extractModuleName(importPath)}
243
+
244
+ @Suite("${moduleName} ${testType} tests")
245
+ struct ${moduleName}Tests {
246
+
247
+ @Test
248
+ func testModuleExists() {
249
+ // Verify the module can be imported
250
+ #expect(true)
251
+ }
252
+
253
+ @Test
254
+ func testBasicOperations() {
255
+ // TODO: Implement when AST analysis is available
256
+ #expect(true)
257
+ }
258
+
259
+ @Test
260
+ func testEdgeCases() {
261
+ // TODO: Test boundary conditions
262
+ #expect(true)
263
+ }
264
+
265
+ @Test
266
+ func testErrorConditions() {
267
+ // TODO: Test error handling
268
+ #expect(true)
269
+ }
270
+ }
271
+ `;
272
+ }
273
+ /**
274
+ * Generate coverage-focused tests for specific lines
275
+ */
276
+ generateCoverageTests(moduleName, importPath, lines) {
277
+ const lineRange = this.formatLineRange(lines);
278
+ return `// Coverage test for ${lineRange} in ${moduleName}
279
+ import Testing
280
+ @testable import ${this.extractModuleName(importPath)}
281
+
282
+ @Suite("${moduleName} coverage - ${lineRange}")
283
+ struct ${moduleName}CoverageTests {
284
+
285
+ @Test
286
+ func testCoverLines${lines[0]}To${lines[lines.length - 1]}() {
287
+ // Arrange: Set up test inputs to reach uncovered lines
288
+ // TODO: Replace with appropriate input
289
+
290
+ // Act: Execute the code path
291
+ // TODO: Call the method that covers ${lineRange}
292
+
293
+ // Assert: Verify the code was reached and behaves correctly
294
+ #expect(true) // placeholder
295
+ }
296
+
297
+ @Test
298
+ func testEdgeCaseLines${lines[0]}To${lines[lines.length - 1]}() {
299
+ // Arrange: Set up edge case input
300
+ // TODO: Provide edge case input
301
+
302
+ // Act & Assert: Verify edge case handling
303
+ #expect(true) // placeholder
304
+ }
305
+ }
306
+ `;
307
+ }
308
+ // ============================================================================
309
+ // Private Helpers
310
+ // ============================================================================
311
+ /**
312
+ * Generate tests for a method on a class/struct
313
+ */
314
+ generateMethodTests(method, cls) {
315
+ const initCall = this.generateInitCall(cls);
316
+ const params = method.parameters.map(p => `${p.name}: ${this.generateSwiftTestValue(p)}`).join(', ');
317
+ const isVoid = method.returnType === 'Void' || method.returnType === '()' || !method.returnType;
318
+ const asyncPrefix = method.isAsync ? 'await ' : '';
319
+ const asyncKeyword = method.isAsync ? ' async' : '';
320
+ const isOptionalReturn = method.returnType?.endsWith('?') || method.returnType?.includes('Optional');
321
+ let code = '';
322
+ // Happy path test
323
+ code += ` @Test\n`;
324
+ code += ` func test${this.pascalCase(method.name)}()${asyncKeyword} {\n`;
325
+ code += ` let subject = ${cls.name}(${initCall})\n`;
326
+ if (isVoid) {
327
+ code += ` ${asyncPrefix}subject.${method.name}(${params})\n`;
328
+ code += ` // void method - verify no crash\n`;
329
+ }
330
+ else if (isOptionalReturn) {
331
+ code += ` let result = ${asyncPrefix}subject.${method.name}(${params})\n`;
332
+ code += ` // Result is optional - may be nil\n`;
333
+ code += ` #expect(result != nil || true)\n`;
334
+ }
335
+ else {
336
+ code += ` let result = ${asyncPrefix}subject.${method.name}(${params})\n`;
337
+ code += ` ${this.generateSwiftAssertion(method.name, method.returnType)}\n`;
338
+ }
339
+ code += ` }\n\n`;
340
+ // Nil parameter tests for optional params
341
+ const bodyText = method.body || '';
342
+ const hasExplicitThrow = /\bthrow\b/.test(bodyText) || /\bguard\b/.test(bodyText);
343
+ for (const param of method.parameters) {
344
+ if (!param.optional && (param.type?.endsWith('?') || param.type?.includes('Optional'))) {
345
+ code += ` @Test\n`;
346
+ code += ` func test${this.pascalCase(method.name)}Nil${this.pascalCase(param.name)}()${asyncKeyword} {\n`;
347
+ code += ` let subject = ${cls.name}(${initCall})\n`;
348
+ const nilParams = method.parameters
349
+ .map(p => `${p.name}: ${p.name === param.name ? 'nil' : this.generateSwiftTestValue(p)}`)
350
+ .join(', ');
351
+ if (hasExplicitThrow) {
352
+ code += ` #expect(throws: (any Error).self) {\n`;
353
+ code += ` ${asyncPrefix}try subject.${method.name}(${nilParams})\n`;
354
+ code += ` }\n`;
355
+ }
356
+ else {
357
+ code += ` let result = ${asyncPrefix}subject.${method.name}(${nilParams})\n`;
358
+ code += ` #expect(result != nil || true)\n`;
359
+ }
360
+ code += ` }\n\n`;
361
+ }
362
+ }
363
+ return code;
364
+ }
365
+ /**
366
+ * Generate a constructor call string for creating instances in tests
367
+ */
368
+ generateInitCall(cls) {
369
+ if (cls.hasConstructor && cls.constructorParams && cls.constructorParams.length > 0) {
370
+ return cls.constructorParams
371
+ .map(p => `${p.name}: ${this.generateSwiftTestValue(p)}`)
372
+ .join(', ');
373
+ }
374
+ return '';
375
+ }
376
+ /**
377
+ * Generate standalone function tests grouped in a Suite
378
+ */
379
+ generateStandaloneFunctionSuite(moduleName, functions, testType) {
380
+ let code = `@Suite\n`;
381
+ code += `struct ${moduleName}FunctionTests {\n\n`;
382
+ for (const fn of functions) {
383
+ code += this.generateFunctionTests(fn, testType);
384
+ }
385
+ code += `}\n`;
386
+ return code;
387
+ }
388
+ /**
389
+ * Generate a Swift assertion based on method name and return type
390
+ */
391
+ generateSwiftAssertion(methodName, returnType) {
392
+ if (!returnType)
393
+ return '#expect(true) // void function';
394
+ const rt = returnType;
395
+ if (/^(is|has|can)[A-Z]/.test(methodName)) {
396
+ return '#expect(result == true || result == false)';
397
+ }
398
+ if (/^(get|fetch|find)[A-Z]/.test(methodName)) {
399
+ return '#expect(result != nil)';
400
+ }
401
+ if (/^(create|build|make)[A-Z]/.test(methodName)) {
402
+ return '#expect(result != nil)';
403
+ }
404
+ const lower = rt.toLowerCase();
405
+ if (rt.endsWith('?'))
406
+ return '#expect(result != nil || true) // optional';
407
+ if (lower === 'bool')
408
+ return '#expect(result == true || result == false)';
409
+ if (lower === 'int' || lower === 'double' || lower === 'float')
410
+ return '#expect(result >= 0 || result < 0) // numeric result';
411
+ if (lower === 'string')
412
+ return '#expect(!result.isEmpty || result.isEmpty)';
413
+ if (rt.startsWith('[') || lower.includes('array'))
414
+ return '#expect(result.count >= 0)';
415
+ return '#expect(result != nil)';
416
+ }
417
+ /**
418
+ * Generate a Swift test value for a parameter
419
+ */
420
+ generateSwiftTestValue(param) {
421
+ if (param.defaultValue)
422
+ return param.defaultValue;
423
+ const type = param.type?.replace('?', '') || 'unknown';
424
+ const name = param.name.toLowerCase();
425
+ const lower = type.toLowerCase();
426
+ // Infer from param name
427
+ if (name.includes('id'))
428
+ return `"${faker.string.uuid()}"`;
429
+ if (name.includes('email'))
430
+ return `"${faker.internet.email()}"`;
431
+ if (name.includes('name'))
432
+ return `"${faker.person.fullName()}"`;
433
+ if (name.includes('url'))
434
+ return `"${faker.internet.url()}"`;
435
+ // Infer from type
436
+ if (lower === 'string')
437
+ return `"${faker.lorem.word()}"`;
438
+ if (lower === 'int')
439
+ return String(faker.number.int({ min: 1, max: 100 }));
440
+ if (lower === 'double' || lower === 'float' || lower === 'cgfloat')
441
+ return String(faker.number.float({ min: 0, max: 100, fractionDigits: 2 }));
442
+ if (lower === 'bool')
443
+ return 'true';
444
+ if (lower.startsWith('[') && lower.endsWith(']'))
445
+ return '[]';
446
+ if (lower.includes('array'))
447
+ return '[]';
448
+ if (lower.includes('dictionary') || lower.includes('dict') || lower.startsWith('[') && lower.includes(':'))
449
+ return '[:]';
450
+ if (lower === 'data')
451
+ return 'Data()';
452
+ if (lower === 'date')
453
+ return 'Date()';
454
+ if (lower === 'uuid')
455
+ return 'UUID()';
456
+ if (lower === 'url')
457
+ return 'URL(string: "https://example.com")!';
458
+ // Default to a mock/placeholder
459
+ return `${type}() /* TODO: provide test value */`;
460
+ }
461
+ /**
462
+ * Extract the Swift module name from an import path
463
+ */
464
+ extractModuleName(importPath) {
465
+ // If it looks like a module name already (no slashes, no dots except in extensions)
466
+ if (!importPath.includes('/') && !importPath.includes('.')) {
467
+ return importPath;
468
+ }
469
+ // Strip file extension and path, return last component as module name
470
+ const parts = importPath.replace(/\.(swift)$/, '').split('/');
471
+ return parts[parts.length - 1];
472
+ }
473
+ /**
474
+ * Generate Swift-style pattern comment
475
+ */
476
+ generateSwiftPatternComment(patterns) {
477
+ if (patterns.length === 0)
478
+ return '';
479
+ return `// Applied patterns: ${patterns.map(p => p.name).join(', ')}\n`;
480
+ }
481
+ }
482
+ //# sourceMappingURL=swift-testing-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-testing-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/swift-testing-generator.ts"],"names":[],"mappings":"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"}