@avi770/testteam 1.2.0 → 2.0.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.
Files changed (300) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.md +53 -6
  3. package/agents/24-signup-onboarding-tester.ts +429 -0
  4. package/agents/25-crud-flow-tester.ts +302 -0
  5. package/agents/26-form-validator.ts +297 -0
  6. package/agents/27-search-filter-tester.ts +326 -0
  7. package/agents/28-navigation-routing-tester.ts +425 -0
  8. package/agents/29-responsive-interaction-tester.ts +350 -0
  9. package/agents/30-multi-user-scenario-tester.ts +319 -0
  10. package/agents/31-load-tester.ts +134 -0
  11. package/agents/32-memory-leak-detector.ts +194 -0
  12. package/agents/33-bundle-analyzer.ts +132 -0
  13. package/agents/34-xss-scanner.ts +191 -0
  14. package/agents/35-csrf-tester.ts +82 -0
  15. package/agents/36-auth-fuzzer.ts +194 -0
  16. package/agents/37-dependency-scanner.ts +176 -0
  17. package/agents/38-secrets-scanner.ts +137 -0
  18. package/agents/39-api-contract-tester.ts +199 -0
  19. package/agents/40-rate-limit-tester.ts +94 -0
  20. package/agents/41-api-pagination-tester.ts +97 -0
  21. package/agents/42-graphql-tester.ts +222 -0
  22. package/agents/43-data-consistency-checker.ts +205 -0
  23. package/agents/44-backup-recovery-tester.ts +152 -0
  24. package/agents/45-data-privacy-scanner.ts +125 -0
  25. package/agents/46-seo-auditor.ts +294 -0
  26. package/agents/47-social-preview-tester.ts +232 -0
  27. package/agents/48-lighthouse-auditor.ts +213 -0
  28. package/agents/49-i18n-tester.ts +198 -0
  29. package/agents/50-timezone-tester.ts +173 -0
  30. package/agents/51-error-recovery-tester.ts +155 -0
  31. package/agents/52-offline-mode-tester.ts +180 -0
  32. package/agents/53-graceful-degradation-tester.ts +156 -0
  33. package/agents/54-websocket-tester.ts +151 -0
  34. package/agents/55-realtime-sync-tester.ts +194 -0
  35. package/agents/56-file-upload-tester.ts +194 -0
  36. package/agents/57-export-tester.ts +174 -0
  37. package/agents/58-payment-flow-tester.ts +183 -0
  38. package/agents/59-ssl-tls-auditor.ts +141 -0
  39. package/agents/60-dns-cdn-tester.ts +117 -0
  40. package/agents/61-docker-health-checker.ts +111 -0
  41. package/agents/62-env-config-validator.ts +152 -0
  42. package/agents/63-log-quality-auditor.ts +136 -0
  43. package/agents/64-analytics-tracker-tester.ts +165 -0
  44. package/agents/65-gdpr-compliance-tester.ts +215 -0
  45. package/agents/66-soc2-control-validator.ts +210 -0
  46. package/agents/67-wcag-aaa-tester.ts +241 -0
  47. package/agents/68-dead-code-detector.ts +135 -0
  48. package/agents/69-type-safety-auditor.ts +164 -0
  49. package/agents/70-complexity-analyzer.ts +179 -0
  50. package/agents/__tests__/24-signup-onboarding-tester.test.ts +274 -0
  51. package/agents/__tests__/25-crud-flow-tester.test.ts +322 -0
  52. package/agents/__tests__/26-form-validator.test.ts +345 -0
  53. package/agents/__tests__/27-search-filter-tester.test.ts +311 -0
  54. package/agents/__tests__/28-navigation-routing-tester.test.ts +328 -0
  55. package/agents/__tests__/29-responsive-interaction-tester.test.ts +297 -0
  56. package/agents/__tests__/30-multi-user-scenario-tester.test.ts +328 -0
  57. package/agents/__tests__/31-load-tester.test.ts +189 -0
  58. package/agents/__tests__/32-memory-leak-detector.test.ts +251 -0
  59. package/agents/__tests__/33-bundle-analyzer.test.ts +237 -0
  60. package/agents/__tests__/34-xss-scanner.test.ts +258 -0
  61. package/agents/__tests__/35-csrf-tester.test.ts +200 -0
  62. package/agents/__tests__/36-auth-fuzzer.test.ts +214 -0
  63. package/agents/__tests__/37-dependency-scanner.test.ts +266 -0
  64. package/agents/__tests__/38-secrets-scanner.test.ts +224 -0
  65. package/agents/__tests__/39-api-contract-tester.test.ts +312 -0
  66. package/agents/__tests__/40-rate-limit-tester.test.ts +192 -0
  67. package/agents/__tests__/41-api-pagination-tester.test.ts +198 -0
  68. package/agents/__tests__/42-graphql-tester.test.ts +252 -0
  69. package/agents/__tests__/43-data-consistency-checker.test.ts +232 -0
  70. package/agents/__tests__/44-backup-recovery-tester.test.ts +222 -0
  71. package/agents/__tests__/45-data-privacy-scanner.test.ts +223 -0
  72. package/agents/__tests__/46-seo-auditor.test.ts +261 -0
  73. package/agents/__tests__/47-social-preview-tester.test.ts +245 -0
  74. package/agents/__tests__/48-lighthouse-auditor.test.ts +276 -0
  75. package/agents/__tests__/49-i18n-tester.test.ts +201 -0
  76. package/agents/__tests__/50-timezone-tester.test.ts +172 -0
  77. package/agents/__tests__/51-error-recovery-tester.test.ts +162 -0
  78. package/agents/__tests__/52-offline-mode-tester.test.ts +164 -0
  79. package/agents/__tests__/53-graceful-degradation-tester.test.ts +168 -0
  80. package/agents/__tests__/54-websocket-tester.test.ts +157 -0
  81. package/agents/__tests__/55-realtime-sync-tester.test.ts +181 -0
  82. package/agents/__tests__/56-file-upload-tester.test.ts +172 -0
  83. package/agents/__tests__/57-export-tester.test.ts +169 -0
  84. package/agents/__tests__/58-payment-flow-tester.test.ts +182 -0
  85. package/agents/__tests__/59-ssl-tls-auditor.test.ts +179 -0
  86. package/agents/__tests__/60-dns-cdn-tester.test.ts +176 -0
  87. package/agents/__tests__/61-docker-health-checker.test.ts +150 -0
  88. package/agents/__tests__/62-env-config-validator.test.ts +166 -0
  89. package/agents/__tests__/63-log-quality-auditor.test.ts +175 -0
  90. package/agents/__tests__/64-analytics-tracker-tester.test.ts +158 -0
  91. package/agents/__tests__/65-gdpr-compliance-tester.test.ts +174 -0
  92. package/agents/__tests__/66-soc2-control-validator.test.ts +183 -0
  93. package/agents/__tests__/67-wcag-aaa-tester.test.ts +190 -0
  94. package/agents/__tests__/68-dead-code-detector.test.ts +174 -0
  95. package/agents/__tests__/69-type-safety-auditor.test.ts +173 -0
  96. package/agents/__tests__/70-complexity-analyzer.test.ts +177 -0
  97. package/agents/__tests__/registry.test.ts +13 -13
  98. package/agents/registry.ts +146 -5
  99. package/core/__tests__/integration.test.ts +4 -4
  100. package/core/__tests__/orchestrator.test.ts +17 -16
  101. package/core/license.ts +208 -211
  102. package/core/orchestrator.ts +6 -4
  103. package/dist/agents/24-signup-onboarding-tester.d.ts +35 -0
  104. package/dist/agents/24-signup-onboarding-tester.d.ts.map +1 -0
  105. package/dist/agents/24-signup-onboarding-tester.js +357 -0
  106. package/dist/agents/24-signup-onboarding-tester.js.map +1 -0
  107. package/dist/agents/25-crud-flow-tester.d.ts +11 -0
  108. package/dist/agents/25-crud-flow-tester.d.ts.map +1 -0
  109. package/dist/agents/25-crud-flow-tester.js +253 -0
  110. package/dist/agents/25-crud-flow-tester.js.map +1 -0
  111. package/dist/agents/26-form-validator.d.ts +12 -0
  112. package/dist/agents/26-form-validator.d.ts.map +1 -0
  113. package/dist/agents/26-form-validator.js +257 -0
  114. package/dist/agents/26-form-validator.js.map +1 -0
  115. package/dist/agents/27-search-filter-tester.d.ts +20 -0
  116. package/dist/agents/27-search-filter-tester.d.ts.map +1 -0
  117. package/dist/agents/27-search-filter-tester.js +267 -0
  118. package/dist/agents/27-search-filter-tester.js.map +1 -0
  119. package/dist/agents/28-navigation-routing-tester.d.ts +32 -0
  120. package/dist/agents/28-navigation-routing-tester.d.ts.map +1 -0
  121. package/dist/agents/28-navigation-routing-tester.js +363 -0
  122. package/dist/agents/28-navigation-routing-tester.js.map +1 -0
  123. package/dist/agents/29-responsive-interaction-tester.d.ts +26 -0
  124. package/dist/agents/29-responsive-interaction-tester.d.ts.map +1 -0
  125. package/dist/agents/29-responsive-interaction-tester.js +272 -0
  126. package/dist/agents/29-responsive-interaction-tester.js.map +1 -0
  127. package/dist/agents/30-multi-user-scenario-tester.d.ts +24 -0
  128. package/dist/agents/30-multi-user-scenario-tester.d.ts.map +1 -0
  129. package/dist/agents/30-multi-user-scenario-tester.js +254 -0
  130. package/dist/agents/30-multi-user-scenario-tester.js.map +1 -0
  131. package/dist/agents/31-load-tester.d.ts +12 -0
  132. package/dist/agents/31-load-tester.d.ts.map +1 -0
  133. package/dist/agents/31-load-tester.js +110 -0
  134. package/dist/agents/31-load-tester.js.map +1 -0
  135. package/dist/agents/32-memory-leak-detector.d.ts +12 -0
  136. package/dist/agents/32-memory-leak-detector.d.ts.map +1 -0
  137. package/dist/agents/32-memory-leak-detector.js +167 -0
  138. package/dist/agents/32-memory-leak-detector.js.map +1 -0
  139. package/dist/agents/33-bundle-analyzer.d.ts +10 -0
  140. package/dist/agents/33-bundle-analyzer.d.ts.map +1 -0
  141. package/dist/agents/33-bundle-analyzer.js +111 -0
  142. package/dist/agents/33-bundle-analyzer.js.map +1 -0
  143. package/dist/agents/34-xss-scanner.d.ts +11 -0
  144. package/dist/agents/34-xss-scanner.d.ts.map +1 -0
  145. package/dist/agents/34-xss-scanner.js +164 -0
  146. package/dist/agents/34-xss-scanner.js.map +1 -0
  147. package/dist/agents/35-csrf-tester.d.ts +11 -0
  148. package/dist/agents/35-csrf-tester.d.ts.map +1 -0
  149. package/dist/agents/35-csrf-tester.js +70 -0
  150. package/dist/agents/35-csrf-tester.js.map +1 -0
  151. package/dist/agents/36-auth-fuzzer.d.ts +13 -0
  152. package/dist/agents/36-auth-fuzzer.d.ts.map +1 -0
  153. package/dist/agents/36-auth-fuzzer.js +163 -0
  154. package/dist/agents/36-auth-fuzzer.js.map +1 -0
  155. package/dist/agents/37-dependency-scanner.d.ts +11 -0
  156. package/dist/agents/37-dependency-scanner.d.ts.map +1 -0
  157. package/dist/agents/37-dependency-scanner.js +139 -0
  158. package/dist/agents/37-dependency-scanner.js.map +1 -0
  159. package/dist/agents/38-secrets-scanner.d.ts +11 -0
  160. package/dist/agents/38-secrets-scanner.d.ts.map +1 -0
  161. package/dist/agents/38-secrets-scanner.js +116 -0
  162. package/dist/agents/38-secrets-scanner.js.map +1 -0
  163. package/dist/agents/39-api-contract-tester.d.ts +12 -0
  164. package/dist/agents/39-api-contract-tester.d.ts.map +1 -0
  165. package/dist/agents/39-api-contract-tester.js +142 -0
  166. package/dist/agents/39-api-contract-tester.js.map +1 -0
  167. package/dist/agents/40-rate-limit-tester.d.ts +12 -0
  168. package/dist/agents/40-rate-limit-tester.d.ts.map +1 -0
  169. package/dist/agents/40-rate-limit-tester.js +79 -0
  170. package/dist/agents/40-rate-limit-tester.js.map +1 -0
  171. package/dist/agents/41-api-pagination-tester.d.ts +12 -0
  172. package/dist/agents/41-api-pagination-tester.d.ts.map +1 -0
  173. package/dist/agents/41-api-pagination-tester.js +79 -0
  174. package/dist/agents/41-api-pagination-tester.js.map +1 -0
  175. package/dist/agents/42-graphql-tester.d.ts +13 -0
  176. package/dist/agents/42-graphql-tester.d.ts.map +1 -0
  177. package/dist/agents/42-graphql-tester.js +187 -0
  178. package/dist/agents/42-graphql-tester.js.map +1 -0
  179. package/dist/agents/43-data-consistency-checker.d.ts +11 -0
  180. package/dist/agents/43-data-consistency-checker.d.ts.map +1 -0
  181. package/dist/agents/43-data-consistency-checker.js +176 -0
  182. package/dist/agents/43-data-consistency-checker.js.map +1 -0
  183. package/dist/agents/44-backup-recovery-tester.d.ts +11 -0
  184. package/dist/agents/44-backup-recovery-tester.d.ts.map +1 -0
  185. package/dist/agents/44-backup-recovery-tester.js +128 -0
  186. package/dist/agents/44-backup-recovery-tester.js.map +1 -0
  187. package/dist/agents/45-data-privacy-scanner.d.ts +11 -0
  188. package/dist/agents/45-data-privacy-scanner.d.ts.map +1 -0
  189. package/dist/agents/45-data-privacy-scanner.js +100 -0
  190. package/dist/agents/45-data-privacy-scanner.js.map +1 -0
  191. package/dist/agents/46-seo-auditor.d.ts +12 -0
  192. package/dist/agents/46-seo-auditor.d.ts.map +1 -0
  193. package/dist/agents/46-seo-auditor.js +275 -0
  194. package/dist/agents/46-seo-auditor.js.map +1 -0
  195. package/dist/agents/47-social-preview-tester.d.ts +11 -0
  196. package/dist/agents/47-social-preview-tester.d.ts.map +1 -0
  197. package/dist/agents/47-social-preview-tester.js +219 -0
  198. package/dist/agents/47-social-preview-tester.js.map +1 -0
  199. package/dist/agents/48-lighthouse-auditor.d.ts +11 -0
  200. package/dist/agents/48-lighthouse-auditor.d.ts.map +1 -0
  201. package/dist/agents/48-lighthouse-auditor.js +192 -0
  202. package/dist/agents/48-lighthouse-auditor.js.map +1 -0
  203. package/dist/agents/49-i18n-tester.d.ts +13 -0
  204. package/dist/agents/49-i18n-tester.d.ts.map +1 -0
  205. package/dist/agents/49-i18n-tester.js +172 -0
  206. package/dist/agents/49-i18n-tester.js.map +1 -0
  207. package/dist/agents/50-timezone-tester.d.ts +11 -0
  208. package/dist/agents/50-timezone-tester.d.ts.map +1 -0
  209. package/dist/agents/50-timezone-tester.js +152 -0
  210. package/dist/agents/50-timezone-tester.js.map +1 -0
  211. package/dist/agents/51-error-recovery-tester.d.ts +11 -0
  212. package/dist/agents/51-error-recovery-tester.d.ts.map +1 -0
  213. package/dist/agents/51-error-recovery-tester.js +134 -0
  214. package/dist/agents/51-error-recovery-tester.js.map +1 -0
  215. package/dist/agents/52-offline-mode-tester.d.ts +12 -0
  216. package/dist/agents/52-offline-mode-tester.d.ts.map +1 -0
  217. package/dist/agents/52-offline-mode-tester.js +161 -0
  218. package/dist/agents/52-offline-mode-tester.js.map +1 -0
  219. package/dist/agents/53-graceful-degradation-tester.d.ts +12 -0
  220. package/dist/agents/53-graceful-degradation-tester.d.ts.map +1 -0
  221. package/dist/agents/53-graceful-degradation-tester.js +130 -0
  222. package/dist/agents/53-graceful-degradation-tester.js.map +1 -0
  223. package/dist/agents/54-websocket-tester.d.ts +10 -0
  224. package/dist/agents/54-websocket-tester.d.ts.map +1 -0
  225. package/dist/agents/54-websocket-tester.js +132 -0
  226. package/dist/agents/54-websocket-tester.js.map +1 -0
  227. package/dist/agents/55-realtime-sync-tester.d.ts +11 -0
  228. package/dist/agents/55-realtime-sync-tester.d.ts.map +1 -0
  229. package/dist/agents/55-realtime-sync-tester.js +175 -0
  230. package/dist/agents/55-realtime-sync-tester.js.map +1 -0
  231. package/dist/agents/56-file-upload-tester.d.ts +12 -0
  232. package/dist/agents/56-file-upload-tester.d.ts.map +1 -0
  233. package/dist/agents/56-file-upload-tester.js +166 -0
  234. package/dist/agents/56-file-upload-tester.js.map +1 -0
  235. package/dist/agents/57-export-tester.d.ts +11 -0
  236. package/dist/agents/57-export-tester.d.ts.map +1 -0
  237. package/dist/agents/57-export-tester.js +155 -0
  238. package/dist/agents/57-export-tester.js.map +1 -0
  239. package/dist/agents/58-payment-flow-tester.d.ts +11 -0
  240. package/dist/agents/58-payment-flow-tester.d.ts.map +1 -0
  241. package/dist/agents/58-payment-flow-tester.js +159 -0
  242. package/dist/agents/58-payment-flow-tester.js.map +1 -0
  243. package/dist/agents/59-ssl-tls-auditor.d.ts +10 -0
  244. package/dist/agents/59-ssl-tls-auditor.d.ts.map +1 -0
  245. package/dist/agents/59-ssl-tls-auditor.js +132 -0
  246. package/dist/agents/59-ssl-tls-auditor.js.map +1 -0
  247. package/dist/agents/60-dns-cdn-tester.d.ts +10 -0
  248. package/dist/agents/60-dns-cdn-tester.d.ts.map +1 -0
  249. package/dist/agents/60-dns-cdn-tester.js +105 -0
  250. package/dist/agents/60-dns-cdn-tester.js.map +1 -0
  251. package/dist/agents/61-docker-health-checker.d.ts +10 -0
  252. package/dist/agents/61-docker-health-checker.d.ts.map +1 -0
  253. package/dist/agents/61-docker-health-checker.js +95 -0
  254. package/dist/agents/61-docker-health-checker.js.map +1 -0
  255. package/dist/agents/62-env-config-validator.d.ts +10 -0
  256. package/dist/agents/62-env-config-validator.d.ts.map +1 -0
  257. package/dist/agents/62-env-config-validator.js +132 -0
  258. package/dist/agents/62-env-config-validator.js.map +1 -0
  259. package/dist/agents/63-log-quality-auditor.d.ts +9 -0
  260. package/dist/agents/63-log-quality-auditor.d.ts.map +1 -0
  261. package/dist/agents/63-log-quality-auditor.js +121 -0
  262. package/dist/agents/63-log-quality-auditor.js.map +1 -0
  263. package/dist/agents/64-analytics-tracker-tester.d.ts +10 -0
  264. package/dist/agents/64-analytics-tracker-tester.d.ts.map +1 -0
  265. package/dist/agents/64-analytics-tracker-tester.js +146 -0
  266. package/dist/agents/64-analytics-tracker-tester.js.map +1 -0
  267. package/dist/agents/65-gdpr-compliance-tester.d.ts +13 -0
  268. package/dist/agents/65-gdpr-compliance-tester.d.ts.map +1 -0
  269. package/dist/agents/65-gdpr-compliance-tester.js +186 -0
  270. package/dist/agents/65-gdpr-compliance-tester.js.map +1 -0
  271. package/dist/agents/66-soc2-control-validator.d.ts +14 -0
  272. package/dist/agents/66-soc2-control-validator.d.ts.map +1 -0
  273. package/dist/agents/66-soc2-control-validator.js +178 -0
  274. package/dist/agents/66-soc2-control-validator.js.map +1 -0
  275. package/dist/agents/67-wcag-aaa-tester.d.ts +13 -0
  276. package/dist/agents/67-wcag-aaa-tester.d.ts.map +1 -0
  277. package/dist/agents/67-wcag-aaa-tester.js +207 -0
  278. package/dist/agents/67-wcag-aaa-tester.js.map +1 -0
  279. package/dist/agents/68-dead-code-detector.d.ts +9 -0
  280. package/dist/agents/68-dead-code-detector.d.ts.map +1 -0
  281. package/dist/agents/68-dead-code-detector.js +116 -0
  282. package/dist/agents/68-dead-code-detector.js.map +1 -0
  283. package/dist/agents/69-type-safety-auditor.d.ts +9 -0
  284. package/dist/agents/69-type-safety-auditor.d.ts.map +1 -0
  285. package/dist/agents/69-type-safety-auditor.js +148 -0
  286. package/dist/agents/69-type-safety-auditor.js.map +1 -0
  287. package/dist/agents/70-complexity-analyzer.d.ts +10 -0
  288. package/dist/agents/70-complexity-analyzer.d.ts.map +1 -0
  289. package/dist/agents/70-complexity-analyzer.js +154 -0
  290. package/dist/agents/70-complexity-analyzer.js.map +1 -0
  291. package/dist/agents/registry.d.ts +3 -3
  292. package/dist/agents/registry.d.ts.map +1 -1
  293. package/dist/agents/registry.js +146 -5
  294. package/dist/agents/registry.js.map +1 -1
  295. package/dist/core/license.js +2 -5
  296. package/dist/core/license.js.map +1 -1
  297. package/dist/core/orchestrator.d.ts.map +1 -1
  298. package/dist/core/orchestrator.js +6 -4
  299. package/dist/core/orchestrator.js.map +1 -1
  300. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.0] - 2026-03-30
9
+
10
+ ### Added
11
+ - 40 new specialized agents (31-70), expanding from 30 to 70 total agents
12
+ - **Performance & Reliability:** Load Tester (31), Memory Leak Detector (32), Bundle Analyzer (33)
13
+ - **Security:** XSS Scanner (34), CSRF Tester (35), Auth Fuzzer (36), Dependency Scanner (37), Secrets Scanner (38)
14
+ - **API Testing:** API Contract Tester (39), Rate Limit Tester (40), API Pagination Tester (41), GraphQL Tester (42)
15
+ - **Data Integrity:** Data Consistency Checker (43), Backup Recovery Tester (44), Data Privacy Scanner (45)
16
+ - **Frontend Quality:** SEO Auditor (46), Social Preview Tester (47), Lighthouse Auditor (48)
17
+ - **Internationalization:** i18n Tester (49), Timezone Tester (50)
18
+ - **Resilience:** Error Recovery Tester (51), Offline Mode Tester (52), Graceful Degradation Tester (53)
19
+ - **Real-time:** WebSocket Tester (54), Realtime Sync Tester (55)
20
+ - **File & Export:** File Upload Tester (56), Export Tester (57)
21
+ - **Payments:** Payment Flow Tester (58)
22
+ - **Infrastructure:** SSL/TLS Auditor (59), DNS/CDN Tester (60), Docker Health Checker (61), Env Config Validator (62)
23
+ - **Observability:** Log Quality Auditor (63), Analytics Tracker Tester (64)
24
+ - **Compliance:** GDPR Compliance Tester (65), SOC2 Control Validator (66), WCAG AAA Tester (67)
25
+ - **Code Quality:** Dead Code Detector (68), Type Safety Auditor (69), Complexity Analyzer (70)
26
+ - Alpha phase now includes code quality and dependency scanning agents (37, 38, 62, 68, 69, 70)
27
+ - UAT phase expanded with 37 new agents (excludes destructive agents 34, 36, 40)
28
+
29
+ ### Changed
30
+ - Version bumped to 2.0.0 (major: new agent roster is a significant capability expansion)
31
+ - Licensing tiers updated: Pro tier now includes 26 agents, Enterprise tier includes all 70
32
+ - All 40 new agents classified as advisory (non-blocking) in default configuration
33
+ - All 40 new agents marked as parallel-safe for concurrent execution
34
+
8
35
  ## [1.1.0] - Unreleased
9
36
 
10
37
  ### Added
@@ -50,5 +77,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
50
77
  - 595 unit tests
51
78
  - TypeScript strict mode throughout with full type safety
52
79
 
53
- [1.1.0]: https://github.com/BAS-More/E2E-Tester/compare/v1.0.0...HEAD
80
+ [2.0.0]: https://github.com/BAS-More/E2E-Tester/compare/v1.1.0...HEAD
81
+ [1.1.0]: https://github.com/BAS-More/E2E-Tester/compare/v1.0.0...v1.1.0
54
82
  [1.0.0]: https://github.com/BAS-More/E2E-Tester/releases/tag/v1.0.0
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <h1 align="center">TestTeam</h1>
6
6
 
7
7
  <p align="center">
8
- <strong>23-agent AI testing orchestration framework</strong>
8
+ <strong>70-agent AI testing orchestration framework</strong>
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -18,7 +18,7 @@
18
18
 
19
19
  ---
20
20
 
21
- Autonomous multi-phase testing pipeline with 23 specialized agents. Runs Alpha through Release with quality gates, self-healing fix loops, and zero manual intervention.
21
+ Autonomous multi-phase testing pipeline with 70 specialized agents. Runs Alpha through Release with quality gates, self-healing fix loops, and zero manual intervention.
22
22
 
23
23
  ## Quick Start
24
24
 
@@ -38,7 +38,7 @@ The init wizard auto-detects your framework, test runner, and scaffolds configur
38
38
  ## Why TestTeam
39
39
 
40
40
  - **4-phase pipeline** -- Alpha, Beta, UAT, Release with quality gates that block promotion on failure
41
- - **23 specialized agents** -- each owns a single testing concern (a11y, security, perf, visual regression, chaos, and more)
41
+ - **70 specialized agents** -- each owns a single testing concern (a11y, security, perf, visual regression, chaos, load testing, compliance, and more)
42
42
  - **Self-healing fix loop** -- Healer and Fixer agents attempt automatic remediation before gate evaluation
43
43
  - **Visual regression** -- pixel-level screenshot diffing with baseline management
44
44
  - **Cost-controlled** -- per-run and per-agent budget limits with configurable abort/alert policies
@@ -71,6 +71,53 @@ The init wizard auto-detects your framework, test runner, and scaffolds configur
71
71
  | 21 | State/Session Tester | Beta, UAT | Enterprise |
72
72
  | 22 | Email/Notification Verifier | Beta, UAT | Enterprise |
73
73
  | 23 | Migration Tester | Alpha | Enterprise |
74
+ | 24 | Signup & Onboarding Tester | Alpha | Pro |
75
+ | 25 | CRUD Flow Tester | Beta, UAT | Pro |
76
+ | 26 | Form Validator | Beta, UAT | Pro |
77
+ | 27 | Search & Filter Tester | Beta, UAT | Pro |
78
+ | 28 | Navigation & Routing Tester | Beta, UAT | Pro |
79
+ | 29 | Responsive Interaction Tester | Beta, UAT | Pro |
80
+ | 30 | Multi-User Scenario Tester | Beta, UAT | Enterprise |
81
+ | 31 | Load Tester | Beta, UAT | Pro |
82
+ | 32 | Memory Leak Detector | Beta, UAT | Pro |
83
+ | 33 | Bundle Analyzer | Beta, UAT | Pro |
84
+ | 34 | XSS Scanner | Beta | Enterprise |
85
+ | 35 | CSRF Tester | Beta, UAT | Enterprise |
86
+ | 36 | Auth Fuzzer | Beta | Enterprise |
87
+ | 37 | Dependency Scanner | Alpha, Beta, UAT | Pro |
88
+ | 38 | Secrets Scanner | Alpha, Beta, UAT | Pro |
89
+ | 39 | API Contract Tester | Beta, UAT | Enterprise |
90
+ | 40 | Rate Limit Tester | Beta | Enterprise |
91
+ | 41 | API Pagination Tester | Beta, UAT | Enterprise |
92
+ | 42 | GraphQL Tester | Beta, UAT | Enterprise |
93
+ | 43 | Data Consistency Checker | Beta, UAT | Enterprise |
94
+ | 44 | Backup Recovery Tester | Beta, UAT | Enterprise |
95
+ | 45 | Data Privacy Scanner | Beta, UAT | Enterprise |
96
+ | 46 | SEO Auditor | Beta, UAT | Pro |
97
+ | 47 | Social Preview Tester | Beta, UAT | Enterprise |
98
+ | 48 | Lighthouse Auditor | Beta, UAT | Pro |
99
+ | 49 | i18n Tester | Beta, UAT | Enterprise |
100
+ | 50 | Timezone Tester | Beta, UAT | Enterprise |
101
+ | 51 | Error Recovery Tester | Beta, UAT | Enterprise |
102
+ | 52 | Offline Mode Tester | Beta, UAT | Enterprise |
103
+ | 53 | Graceful Degradation Tester | Beta, UAT | Enterprise |
104
+ | 54 | WebSocket Tester | Beta, UAT | Enterprise |
105
+ | 55 | Realtime Sync Tester | Beta, UAT | Enterprise |
106
+ | 56 | File Upload Tester | Beta, UAT | Enterprise |
107
+ | 57 | Export Tester | Beta, UAT | Enterprise |
108
+ | 58 | Payment Flow Tester | Beta, UAT | Enterprise |
109
+ | 59 | SSL/TLS Auditor | Beta, UAT | Enterprise |
110
+ | 60 | DNS/CDN Tester | Beta, UAT | Enterprise |
111
+ | 61 | Docker Health Checker | Beta, UAT | Enterprise |
112
+ | 62 | Env Config Validator | Alpha, Beta, UAT | Pro |
113
+ | 63 | Log Quality Auditor | Beta, UAT | Enterprise |
114
+ | 64 | Analytics Tracker Tester | Beta, UAT | Enterprise |
115
+ | 65 | GDPR Compliance Tester | Beta, UAT | Enterprise |
116
+ | 66 | SOC2 Control Validator | Beta, UAT | Enterprise |
117
+ | 67 | WCAG AAA Tester | Beta, UAT | Enterprise |
118
+ | 68 | Dead Code Detector | Alpha, Beta, UAT | Pro |
119
+ | 69 | Type Safety Auditor | Alpha, Beta, UAT | Pro |
120
+ | 70 | Complexity Analyzer | Alpha, Beta, UAT | Pro |
74
121
 
75
122
  ## Architecture
76
123
 
@@ -86,9 +133,9 @@ Each phase dispatches its agents, evaluates findings against blocking/advisory c
86
133
 
87
134
  | Plan | Price | Agents | Support |
88
135
  |------|-------|--------|---------|
89
- | **Free** | $0 | 8 agents (1--8) | Community |
90
- | **Pro** | $49/mo | 17 agents (1--15) | Priority email |
91
- | **Enterprise** | $199/mo | All 23 agents + custom | Dedicated support, SLA |
136
+ | **Free** | $0 | 8 agents | Community |
137
+ | **Pro** | $49/mo | 34 agents | Priority email |
138
+ | **Enterprise** | $199/mo | All 70 agents + custom | Dedicated support, SLA |
92
139
 
93
140
  All plans include the CLI, init wizard, and config validation. Pro and Enterprise unlock the fix loop, Reporter, and advanced agents.
94
141
 
@@ -0,0 +1,429 @@
1
+ import type { Browser, Page } from 'playwright';
2
+ import type { Finding } from '../core/types';
3
+ import { BaseAgent } from './base-agent';
4
+ import { resolveEnvironment } from '../helpers/env-resolver';
5
+ import { login } from '../helpers/navigation';
6
+
7
+ /** Timeout (ms) for individual signup/onboarding operations. */
8
+ const OP_TIMEOUT_MS = 5_000;
9
+
10
+ /** Common registration page paths to probe. */
11
+ const REGISTER_PATHS = ['/register', '/signup', '/sign-up'] as const;
12
+
13
+ /** Selectors indicating onboarding/welcome UI. */
14
+ const ONBOARDING_SELECTORS = [
15
+ '[data-testid*="onboard"]',
16
+ '.onboarding',
17
+ '.welcome',
18
+ '.tour',
19
+ '[class*="tour"]',
20
+ '[class*="welcome"]',
21
+ '[class*="onboard"]',
22
+ ] as const;
23
+
24
+ export class SignupOnboardingTesterAgent extends BaseAgent {
25
+ readonly agentId = 24;
26
+ readonly agentName = 'Signup & Onboarding Tester';
27
+ private baseUrl = '';
28
+
29
+ protected async preFlight(): Promise<void> {
30
+ const { env } = await resolveEnvironment(this.config, this.phase);
31
+ this.baseUrl = env.baseUrl;
32
+ }
33
+
34
+ protected async execute(): Promise<Finding[]> {
35
+ const findings: Finding[] = [];
36
+
37
+ const rawLoginUrl = this.config.auth.loginUrl ?? '/login';
38
+ const loginUrl = rawLoginUrl.startsWith('http') ? rawLoginUrl : `${this.baseUrl}${rawLoginUrl}`;
39
+ const credentials =
40
+ this.config.auth.credentials?.['admin'] ??
41
+ Object.values(this.config.auth.credentials ?? {})[0];
42
+
43
+ const { chromium } = await import('playwright');
44
+
45
+ let browser: Browser | null = null;
46
+
47
+ try {
48
+ browser = await chromium.launch({ headless: true });
49
+ const page = await browser.newPage();
50
+
51
+ // Test 1: Registration page exists
52
+ const regFindings = await this.testRegistrationPage(page);
53
+ findings.push(...regFindings);
54
+
55
+ // Test 2: Registration validation
56
+ const validationFindings = await this.testRegistrationValidation(page);
57
+ findings.push(...validationFindings);
58
+
59
+ // Test 3: Login page
60
+ const loginPageFindings = await this.testLoginPage(page, loginUrl);
61
+ findings.push(...loginPageFindings);
62
+
63
+ // Test 4: Login flow
64
+ if (credentials) {
65
+ const loginFlowFindings = await this.testLoginFlow(page, credentials, loginUrl);
66
+ findings.push(...loginFlowFindings);
67
+ } else {
68
+ findings.push({
69
+ id: `${this.agentId}-no-credentials`,
70
+ type: 'infra-issue',
71
+ severity: 'medium',
72
+ agentId: this.agentId,
73
+ module: 'signup-onboarding',
74
+ description: 'No credentials configured — skipping login flow test',
75
+ });
76
+ }
77
+
78
+ // Test 5: Onboarding detection
79
+ const onboardFindings = await this.testOnboardingDetection(page);
80
+ findings.push(...onboardFindings);
81
+
82
+ // Test 6: Forgot password
83
+ const forgotFindings = await this.testForgotPassword(page);
84
+ findings.push(...forgotFindings);
85
+
86
+ await page.close().catch(() => undefined);
87
+ } catch (playwrightError) {
88
+ findings.push({
89
+ id: `${this.agentId}-playwright-failure`,
90
+ type: 'infra-issue',
91
+ severity: 'medium',
92
+ agentId: this.agentId,
93
+ module: 'signup-onboarding',
94
+ description: `Playwright execution failed: ${playwrightError instanceof Error ? playwrightError.message.split('\n')[0] : String(playwrightError)}`,
95
+ });
96
+ } finally {
97
+ if (browser) await browser.close().catch(() => undefined);
98
+ }
99
+
100
+ return findings;
101
+ }
102
+
103
+ /**
104
+ * Test 1: Check if a registration page exists.
105
+ * Tries config.auth.registerUrl first, then common paths.
106
+ */
107
+ private async testRegistrationPage(page: Page): Promise<Finding[]> {
108
+ const findings: Finding[] = [];
109
+
110
+ const configRegisterUrl = (this.config.auth as Record<string, unknown>).registerUrl as
111
+ | string
112
+ | undefined;
113
+
114
+ const pathsToTry = configRegisterUrl ? [configRegisterUrl] : [...REGISTER_PATHS];
115
+ let found = false;
116
+
117
+ for (const p of pathsToTry) {
118
+ const url = p.startsWith('http') ? p : `${this.baseUrl}${p}`;
119
+ try {
120
+ const response = await Promise.race([
121
+ page.goto(url, { waitUntil: 'domcontentloaded' }),
122
+ new Promise<null>((_, reject) =>
123
+ setTimeout(() => reject(new Error('Navigation timeout')), OP_TIMEOUT_MS),
124
+ ),
125
+ ]);
126
+
127
+ // Check for registration form elements
128
+ const nameField = await page
129
+ .locator('input[name="name"], input[placeholder*="name" i], input[autocomplete="name"]')
130
+ .count();
131
+ const emailField = await page
132
+ .locator('input[type="email"], input[name="email"], input[placeholder*="email" i]')
133
+ .count();
134
+ const passwordField = await page.locator('input[type="password"]').count();
135
+ const submitButton = await page
136
+ .locator('button[type="submit"], button:has-text("Register"), button:has-text("Sign up")')
137
+ .count();
138
+
139
+ if (emailField > 0 && passwordField > 0) {
140
+ found = true;
141
+
142
+ if (submitButton === 0) {
143
+ findings.push({
144
+ id: `${this.agentId}-register-no-submit`,
145
+ type: 'test-bug',
146
+ severity: 'medium',
147
+ agentId: this.agentId,
148
+ module: 'signup-onboarding',
149
+ description: `Registration page at ${p} has form fields but no submit button`,
150
+ });
151
+ }
152
+ break;
153
+ }
154
+ } catch {
155
+ // Path not reachable — try next
156
+ }
157
+ }
158
+
159
+ if (!found) {
160
+ findings.push({
161
+ id: `${this.agentId}-no-register-page`,
162
+ type: 'test-bug',
163
+ severity: 'medium',
164
+ agentId: this.agentId,
165
+ module: 'signup-onboarding',
166
+ description: `No registration page found at paths: ${pathsToTry.join(', ')}`,
167
+ });
168
+ }
169
+
170
+ return findings;
171
+ }
172
+
173
+ /**
174
+ * Test 2: Submit empty registration form and expect validation errors.
175
+ */
176
+ private async testRegistrationValidation(page: Page): Promise<Finding[]> {
177
+ const findings: Finding[] = [];
178
+
179
+ // Only run if we're on a registration page with a submit button
180
+ const submitBtn = page.locator(
181
+ 'button[type="submit"], button:has-text("Register"), button:has-text("Sign up")',
182
+ );
183
+
184
+ let hasSubmit = false;
185
+ try {
186
+ hasSubmit = (await submitBtn.count()) > 0;
187
+ } catch {
188
+ return findings;
189
+ }
190
+
191
+ if (!hasSubmit) {
192
+ return findings;
193
+ }
194
+
195
+ try {
196
+ await Promise.race([
197
+ submitBtn.first().click(),
198
+ new Promise((_, reject) =>
199
+ setTimeout(() => reject(new Error('Timeout')), OP_TIMEOUT_MS),
200
+ ),
201
+ ]);
202
+
203
+ // Wait briefly for validation
204
+ await page.waitForTimeout(500);
205
+
206
+ const errorCount = await page
207
+ .locator(
208
+ '.error, [aria-invalid="true"], [class*="error"], [role="alert"], .validation-error',
209
+ )
210
+ .count();
211
+
212
+ if (errorCount === 0) {
213
+ findings.push({
214
+ id: `${this.agentId}-register-no-validation`,
215
+ type: 'test-bug',
216
+ severity: 'high',
217
+ agentId: this.agentId,
218
+ module: 'signup-onboarding',
219
+ description: 'Registration form accepts empty submission without validation errors',
220
+ });
221
+ }
222
+ } catch {
223
+ // Submit failed — non-critical
224
+ }
225
+
226
+ return findings;
227
+ }
228
+
229
+ /**
230
+ * Test 3: Verify the login page has expected elements.
231
+ */
232
+ private async testLoginPage(page: Page, loginUrl: string): Promise<Finding[]> {
233
+ const findings: Finding[] = [];
234
+
235
+ try {
236
+ await Promise.race([
237
+ page.goto(loginUrl, { waitUntil: 'domcontentloaded' }),
238
+ new Promise((_, reject) =>
239
+ setTimeout(() => reject(new Error('Navigation timeout')), OP_TIMEOUT_MS),
240
+ ),
241
+ ]);
242
+
243
+ const emailInput = await page
244
+ .locator('input[type="email"], input[name="email"], input[placeholder*="email" i]')
245
+ .count();
246
+ const passwordInput = await page.locator('input[type="password"]').count();
247
+ const submitButton = await page
248
+ .locator(
249
+ 'button[type="submit"], button:has-text("Login"), button:has-text("Sign in"), button:has-text("Log in")',
250
+ )
251
+ .count();
252
+
253
+ if (emailInput === 0 || passwordInput === 0) {
254
+ findings.push({
255
+ id: `${this.agentId}-login-missing-inputs`,
256
+ type: 'test-bug',
257
+ severity: 'high',
258
+ agentId: this.agentId,
259
+ module: 'signup-onboarding',
260
+ description: `Login page missing required inputs — email: ${emailInput}, password: ${passwordInput}`,
261
+ });
262
+ }
263
+
264
+ if (submitButton === 0) {
265
+ findings.push({
266
+ id: `${this.agentId}-login-no-submit`,
267
+ type: 'test-bug',
268
+ severity: 'high',
269
+ agentId: this.agentId,
270
+ module: 'signup-onboarding',
271
+ description: 'Login page has no submit button',
272
+ });
273
+ }
274
+ } catch (navError) {
275
+ findings.push({
276
+ id: `${this.agentId}-login-page-nav-failed`,
277
+ type: 'test-bug',
278
+ severity: 'medium',
279
+ agentId: this.agentId,
280
+ module: 'signup-onboarding',
281
+ description: `Failed to navigate to login page: ${navError instanceof Error ? navError.message.split('\n')[0] : String(navError)}`,
282
+ });
283
+ }
284
+
285
+ return findings;
286
+ }
287
+
288
+ /**
289
+ * Test 4: Fill credentials and submit login form.
290
+ */
291
+ private async testLoginFlow(
292
+ page: Page,
293
+ credentials: { email: string; password: string },
294
+ loginUrl: string,
295
+ ): Promise<Finding[]> {
296
+ const findings: Finding[] = [];
297
+
298
+ try {
299
+ await Promise.race([
300
+ page.goto(loginUrl, { waitUntil: 'domcontentloaded' }),
301
+ new Promise((_, reject) =>
302
+ setTimeout(() => reject(new Error('Navigation timeout')), OP_TIMEOUT_MS),
303
+ ),
304
+ ]);
305
+
306
+ try {
307
+ await login(page, credentials, loginUrl);
308
+ } catch {
309
+ // login helper failed — try manual approach
310
+ }
311
+
312
+ const currentUrl = page.url();
313
+ if (currentUrl.includes('/login') || currentUrl.includes('/signin')) {
314
+ findings.push({
315
+ id: `${this.agentId}-login-flow-stuck`,
316
+ type: 'test-bug',
317
+ severity: 'medium',
318
+ agentId: this.agentId,
319
+ module: 'signup-onboarding',
320
+ description:
321
+ 'Login flow did not navigate away from login page — credentials may be invalid or login flow is broken',
322
+ });
323
+ }
324
+ } catch (flowError) {
325
+ findings.push({
326
+ id: `${this.agentId}-login-flow-error`,
327
+ type: 'test-bug',
328
+ severity: 'medium',
329
+ agentId: this.agentId,
330
+ module: 'signup-onboarding',
331
+ description: `Login flow test failed: ${flowError instanceof Error ? flowError.message.split('\n')[0] : String(flowError)}`,
332
+ });
333
+ }
334
+
335
+ return findings;
336
+ }
337
+
338
+ /**
339
+ * Test 5: After login, look for onboarding/welcome/tour modals.
340
+ */
341
+ private async testOnboardingDetection(page: Page): Promise<Finding[]> {
342
+ const findings: Finding[] = [];
343
+
344
+ const selector = ONBOARDING_SELECTORS.join(', ');
345
+
346
+ try {
347
+ const onboardingCount = await Promise.race([
348
+ page.locator(selector).count(),
349
+ new Promise<number>((_, reject) =>
350
+ setTimeout(() => reject(new Error('Timeout')), OP_TIMEOUT_MS),
351
+ ),
352
+ ]) as number;
353
+
354
+ if (onboardingCount > 0) {
355
+ findings.push({
356
+ id: `${this.agentId}-onboarding-detected`,
357
+ type: 'infra-issue',
358
+ severity: 'info',
359
+ agentId: this.agentId,
360
+ module: 'signup-onboarding',
361
+ description: `Onboarding/welcome UI detected — found ${onboardingCount} element(s) matching onboarding selectors`,
362
+ });
363
+ } else {
364
+ findings.push({
365
+ id: `${this.agentId}-no-onboarding`,
366
+ type: 'infra-issue',
367
+ severity: 'info',
368
+ agentId: this.agentId,
369
+ module: 'signup-onboarding',
370
+ description: 'No onboarding/welcome/tour UI detected after login',
371
+ });
372
+ }
373
+ } catch {
374
+ // Timeout — non-critical
375
+ }
376
+
377
+ return findings;
378
+ }
379
+
380
+ /**
381
+ * Test 6: Check if forgot-password page exists with expected elements.
382
+ */
383
+ private async testForgotPassword(page: Page): Promise<Finding[]> {
384
+ const findings: Finding[] = [];
385
+ const forgotUrl = `${this.baseUrl}/forgot-password`;
386
+
387
+ try {
388
+ await Promise.race([
389
+ page.goto(forgotUrl, { waitUntil: 'domcontentloaded' }),
390
+ new Promise((_, reject) =>
391
+ setTimeout(() => reject(new Error('Navigation timeout')), OP_TIMEOUT_MS),
392
+ ),
393
+ ]);
394
+
395
+ const emailInput = await page
396
+ .locator('input[type="email"], input[name="email"], input[placeholder*="email" i]')
397
+ .count();
398
+ const submitButton = await page
399
+ .locator(
400
+ 'button[type="submit"], button:has-text("Reset"), button:has-text("Send"), button:has-text("Submit")',
401
+ )
402
+ .count();
403
+
404
+ if (emailInput > 0 && submitButton > 0) {
405
+ findings.push({
406
+ id: `${this.agentId}-forgot-password-found`,
407
+ type: 'infra-issue',
408
+ severity: 'info',
409
+ agentId: this.agentId,
410
+ module: 'signup-onboarding',
411
+ description: 'Forgot password page found with email input and submit button',
412
+ });
413
+ } else if (emailInput > 0) {
414
+ findings.push({
415
+ id: `${this.agentId}-forgot-password-no-submit`,
416
+ type: 'test-bug',
417
+ severity: 'medium',
418
+ agentId: this.agentId,
419
+ module: 'signup-onboarding',
420
+ description: 'Forgot password page has email input but no submit button',
421
+ });
422
+ }
423
+ } catch {
424
+ // Forgot password page not found — not critical
425
+ }
426
+
427
+ return findings;
428
+ }
429
+ }