reviewflow 3.7.0 → 3.8.1

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 (290) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +28 -0
  3. package/dist/entities/insight/aiInsight.d.ts +6 -0
  4. package/dist/entities/insight/aiInsight.d.ts.map +1 -0
  5. package/dist/entities/insight/aiInsight.js +2 -0
  6. package/dist/entities/insight/aiInsight.js.map +1 -0
  7. package/dist/entities/insight/aiInsight.schema.d.ts +55 -0
  8. package/dist/entities/insight/aiInsight.schema.d.ts.map +1 -0
  9. package/dist/entities/insight/aiInsight.schema.js +25 -0
  10. package/dist/entities/insight/aiInsight.schema.js.map +1 -0
  11. package/dist/entities/insight/developerInsight.d.ts +8 -0
  12. package/dist/entities/insight/developerInsight.d.ts.map +1 -0
  13. package/dist/entities/insight/developerInsight.guard.d.ts +221 -0
  14. package/dist/entities/insight/developerInsight.guard.d.ts.map +1 -0
  15. package/dist/entities/insight/developerInsight.guard.js +13 -0
  16. package/dist/entities/insight/developerInsight.guard.js.map +1 -0
  17. package/dist/entities/insight/developerInsight.js +2 -0
  18. package/dist/entities/insight/developerInsight.js.map +1 -0
  19. package/dist/entities/insight/developerInsight.schema.d.ts +157 -0
  20. package/dist/entities/insight/developerInsight.schema.d.ts.map +1 -0
  21. package/dist/entities/insight/developerInsight.schema.js +43 -0
  22. package/dist/entities/insight/developerInsight.schema.js.map +1 -0
  23. package/dist/entities/insight/developerTitle.d.ts +12 -0
  24. package/dist/entities/insight/developerTitle.d.ts.map +1 -0
  25. package/dist/entities/insight/developerTitle.js +11 -0
  26. package/dist/entities/insight/developerTitle.js.map +1 -0
  27. package/dist/entities/insight/insightCategory.d.ts +10 -0
  28. package/dist/entities/insight/insightCategory.d.ts.map +1 -0
  29. package/dist/entities/insight/insightCategory.js +4 -0
  30. package/dist/entities/insight/insightCategory.js.map +1 -0
  31. package/dist/entities/insight/insightTrend.d.ts +9 -0
  32. package/dist/entities/insight/insightTrend.d.ts.map +1 -0
  33. package/dist/entities/insight/insightTrend.js +4 -0
  34. package/dist/entities/insight/insightTrend.js.map +1 -0
  35. package/dist/entities/insight/insights.gateway.d.ts +6 -0
  36. package/dist/entities/insight/insights.gateway.d.ts.map +1 -0
  37. package/dist/entities/insight/insights.gateway.js +2 -0
  38. package/dist/entities/insight/insights.gateway.js.map +1 -0
  39. package/dist/entities/insight/persistedInsightsData.d.ts +5 -0
  40. package/dist/entities/insight/persistedInsightsData.d.ts.map +1 -0
  41. package/dist/entities/insight/persistedInsightsData.guard.d.ts +271 -0
  42. package/dist/entities/insight/persistedInsightsData.guard.d.ts.map +1 -0
  43. package/dist/entities/insight/persistedInsightsData.guard.js +13 -0
  44. package/dist/entities/insight/persistedInsightsData.guard.js.map +1 -0
  45. package/dist/entities/insight/persistedInsightsData.js +2 -0
  46. package/dist/entities/insight/persistedInsightsData.js.map +1 -0
  47. package/dist/entities/insight/persistedInsightsData.schema.d.ts +84 -0
  48. package/dist/entities/insight/persistedInsightsData.schema.d.ts.map +1 -0
  49. package/dist/entities/insight/persistedInsightsData.schema.js +40 -0
  50. package/dist/entities/insight/persistedInsightsData.schema.js.map +1 -0
  51. package/dist/entities/insight/teamInsight.d.ts +5 -0
  52. package/dist/entities/insight/teamInsight.d.ts.map +1 -0
  53. package/dist/entities/insight/teamInsight.guard.d.ts +71 -0
  54. package/dist/entities/insight/teamInsight.guard.d.ts.map +1 -0
  55. package/dist/entities/insight/teamInsight.guard.js +13 -0
  56. package/dist/entities/insight/teamInsight.guard.js.map +1 -0
  57. package/dist/entities/insight/teamInsight.js +2 -0
  58. package/dist/entities/insight/teamInsight.js.map +1 -0
  59. package/dist/entities/insight/teamInsight.schema.d.ts +31 -0
  60. package/dist/entities/insight/teamInsight.schema.d.ts.map +1 -0
  61. package/dist/entities/insight/teamInsight.schema.js +17 -0
  62. package/dist/entities/insight/teamInsight.schema.js.map +1 -0
  63. package/dist/entities/packageVersion/packageVersion.d.ts +3 -0
  64. package/dist/entities/packageVersion/packageVersion.d.ts.map +1 -1
  65. package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts +2 -1
  66. package/dist/entities/packageVersion/selfUpdateCommand.gateway.d.ts.map +1 -1
  67. package/dist/entities/review/reviewFile.gateway.d.ts +18 -0
  68. package/dist/entities/review/reviewFile.gateway.d.ts.map +1 -0
  69. package/dist/entities/review/reviewFile.gateway.js +2 -0
  70. package/dist/entities/review/reviewFile.gateway.js.map +1 -0
  71. package/dist/entities/stats/projectStats.d.ts +3 -0
  72. package/dist/entities/stats/projectStats.d.ts.map +1 -1
  73. package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts +19 -0
  74. package/dist/entities/tracking/reviewRequestTracking.gateway.d.ts.map +1 -0
  75. package/dist/entities/tracking/reviewRequestTracking.gateway.js +2 -0
  76. package/dist/entities/tracking/reviewRequestTracking.gateway.js.map +1 -0
  77. package/dist/frameworks/claude/claudeInsightsInvoker.d.ts +3 -0
  78. package/dist/frameworks/claude/claudeInsightsInvoker.d.ts.map +1 -0
  79. package/dist/frameworks/claude/claudeInsightsInvoker.js +58 -0
  80. package/dist/frameworks/claude/claudeInsightsInvoker.js.map +1 -0
  81. package/dist/interface-adapters/controllers/http/insights.routes.d.ts +20 -0
  82. package/dist/interface-adapters/controllers/http/insights.routes.d.ts.map +1 -0
  83. package/dist/interface-adapters/controllers/http/insights.routes.js +73 -0
  84. package/dist/interface-adapters/controllers/http/insights.routes.js.map +1 -0
  85. package/dist/interface-adapters/controllers/http/settings.routes.d.ts.map +1 -1
  86. package/dist/interface-adapters/controllers/http/settings.routes.js +3 -0
  87. package/dist/interface-adapters/controllers/http/settings.routes.js.map +1 -1
  88. package/dist/interface-adapters/controllers/http/version.routes.d.ts +1 -0
  89. package/dist/interface-adapters/controllers/http/version.routes.d.ts.map +1 -1
  90. package/dist/interface-adapters/controllers/http/version.routes.js +4 -1
  91. package/dist/interface-adapters/controllers/http/version.routes.js.map +1 -1
  92. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts +7 -0
  93. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.d.ts.map +1 -0
  94. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js +33 -0
  95. package/dist/interface-adapters/gateways/fileSystem/insights.fileSystem.js.map +1 -0
  96. package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts +1 -17
  97. package/dist/interface-adapters/gateways/reviewFile.gateway.d.ts.map +1 -1
  98. package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts +1 -18
  99. package/dist/interface-adapters/gateways/reviewRequestTracking.gateway.d.ts.map +1 -1
  100. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts +3 -2
  101. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.d.ts.map +1 -1
  102. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js +29 -15
  103. package/dist/interface-adapters/gateways/selfUpdate.cli.gateway.js.map +1 -1
  104. package/dist/interface-adapters/presenters/insights.presenter.d.ts +41 -0
  105. package/dist/interface-adapters/presenters/insights.presenter.d.ts.map +1 -0
  106. package/dist/interface-adapters/presenters/insights.presenter.js +36 -0
  107. package/dist/interface-adapters/presenters/insights.presenter.js.map +1 -0
  108. package/dist/interface-adapters/views/dashboard/index.html +242 -2
  109. package/dist/interface-adapters/views/dashboard/modules/developerSheet.d.ts +14 -0
  110. package/dist/interface-adapters/views/dashboard/modules/developerSheet.d.ts.map +1 -0
  111. package/dist/interface-adapters/views/dashboard/modules/developerSheet.js +359 -0
  112. package/dist/interface-adapters/views/dashboard/modules/developerSheet.js.map +1 -0
  113. package/dist/interface-adapters/views/dashboard/modules/i18n.d.ts.map +1 -1
  114. package/dist/interface-adapters/views/dashboard/modules/i18n.js +201 -1
  115. package/dist/interface-adapters/views/dashboard/modules/i18n.js.map +1 -1
  116. package/dist/interface-adapters/views/dashboard/modules/insightsReport.d.ts +7 -0
  117. package/dist/interface-adapters/views/dashboard/modules/insightsReport.d.ts.map +1 -0
  118. package/dist/interface-adapters/views/dashboard/modules/insightsReport.js +509 -0
  119. package/dist/interface-adapters/views/dashboard/modules/insightsReport.js.map +1 -0
  120. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.d.ts +40 -0
  121. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.d.ts.map +1 -0
  122. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.js +106 -0
  123. package/dist/interface-adapters/views/dashboard/modules/sharedViewHelpers.js.map +1 -0
  124. package/dist/interface-adapters/views/dashboard/modules/teamTab.d.ts +13 -0
  125. package/dist/interface-adapters/views/dashboard/modules/teamTab.d.ts.map +1 -0
  126. package/dist/interface-adapters/views/dashboard/modules/teamTab.js +296 -0
  127. package/dist/interface-adapters/views/dashboard/modules/teamTab.js.map +1 -0
  128. package/dist/interface-adapters/views/dashboard/styles.css +967 -0
  129. package/dist/main/dependencies.d.ts +2 -0
  130. package/dist/main/dependencies.d.ts.map +1 -1
  131. package/dist/main/dependencies.js +2 -0
  132. package/dist/main/dependencies.js.map +1 -1
  133. package/dist/main/routes.d.ts.map +1 -1
  134. package/dist/main/routes.js +13 -0
  135. package/dist/main/routes.js.map +1 -1
  136. package/dist/services/statsService.d.ts.map +1 -1
  137. package/dist/services/statsService.js +46 -27
  138. package/dist/services/statsService.js.map +1 -1
  139. package/dist/tests/factories/developerInsight.factory.d.ts +6 -0
  140. package/dist/tests/factories/developerInsight.factory.d.ts.map +1 -0
  141. package/dist/tests/factories/developerInsight.factory.js +61 -0
  142. package/dist/tests/factories/developerInsight.factory.js.map +1 -0
  143. package/dist/tests/factories/persistedInsightsData.factory.d.ts +11 -0
  144. package/dist/tests/factories/persistedInsightsData.factory.d.ts.map +1 -0
  145. package/dist/tests/factories/persistedInsightsData.factory.js +41 -0
  146. package/dist/tests/factories/persistedInsightsData.factory.js.map +1 -0
  147. package/dist/tests/factories/teamInsight.factory.d.ts +6 -0
  148. package/dist/tests/factories/teamInsight.factory.d.ts.map +1 -0
  149. package/dist/tests/factories/teamInsight.factory.js +35 -0
  150. package/dist/tests/factories/teamInsight.factory.js.map +1 -0
  151. package/dist/tests/stubs/insights.stub.d.ts +9 -0
  152. package/dist/tests/stubs/insights.stub.d.ts.map +1 -0
  153. package/dist/tests/stubs/insights.stub.js +13 -0
  154. package/dist/tests/stubs/insights.stub.js.map +1 -0
  155. package/dist/tests/stubs/reviewFile.stub.d.ts +1 -1
  156. package/dist/tests/stubs/reviewFile.stub.d.ts.map +1 -1
  157. package/dist/tests/stubs/reviewRequestTracking.stub.d.ts +1 -1
  158. package/dist/tests/stubs/reviewRequestTracking.stub.d.ts.map +1 -1
  159. package/dist/tests/stubs/selfUpdate.stub.d.ts +4 -2
  160. package/dist/tests/stubs/selfUpdate.stub.d.ts.map +1 -1
  161. package/dist/tests/stubs/selfUpdate.stub.js +6 -4
  162. package/dist/tests/stubs/selfUpdate.stub.js.map +1 -1
  163. package/dist/tests/units/entities/insight/aiInsight.schema.test.d.ts +2 -0
  164. package/dist/tests/units/entities/insight/aiInsight.schema.test.d.ts.map +1 -0
  165. package/dist/tests/units/entities/insight/aiInsight.schema.test.js +123 -0
  166. package/dist/tests/units/entities/insight/aiInsight.schema.test.js.map +1 -0
  167. package/dist/tests/units/entities/insight/developerInsight.schema.test.d.ts +2 -0
  168. package/dist/tests/units/entities/insight/developerInsight.schema.test.d.ts.map +1 -0
  169. package/dist/tests/units/entities/insight/developerInsight.schema.test.js +140 -0
  170. package/dist/tests/units/entities/insight/developerInsight.schema.test.js.map +1 -0
  171. package/dist/tests/units/entities/insight/developerTitle.test.d.ts +2 -0
  172. package/dist/tests/units/entities/insight/developerTitle.test.d.ts.map +1 -0
  173. package/dist/tests/units/entities/insight/developerTitle.test.js +23 -0
  174. package/dist/tests/units/entities/insight/developerTitle.test.js.map +1 -0
  175. package/dist/tests/units/entities/insight/insightCategory.test.d.ts +2 -0
  176. package/dist/tests/units/entities/insight/insightCategory.test.d.ts.map +1 -0
  177. package/dist/tests/units/entities/insight/insightCategory.test.js +16 -0
  178. package/dist/tests/units/entities/insight/insightCategory.test.js.map +1 -0
  179. package/dist/tests/units/entities/insight/insightTrend.test.d.ts +2 -0
  180. package/dist/tests/units/entities/insight/insightTrend.test.d.ts.map +1 -0
  181. package/dist/tests/units/entities/insight/insightTrend.test.js +16 -0
  182. package/dist/tests/units/entities/insight/insightTrend.test.js.map +1 -0
  183. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.d.ts +2 -0
  184. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.d.ts.map +1 -0
  185. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js +160 -0
  186. package/dist/tests/units/entities/insight/persistedInsightsData.schema.test.js.map +1 -0
  187. package/dist/tests/units/entities/insight/teamInsight.schema.test.d.ts +2 -0
  188. package/dist/tests/units/entities/insight/teamInsight.schema.test.d.ts.map +1 -0
  189. package/dist/tests/units/entities/insight/teamInsight.schema.test.js +57 -0
  190. package/dist/tests/units/entities/insight/teamInsight.schema.test.js.map +1 -0
  191. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.d.ts +2 -0
  192. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.d.ts.map +1 -0
  193. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js +390 -0
  194. package/dist/tests/units/interface-adapters/controllers/http/insights.routes.test.js.map +1 -0
  195. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.d.ts +2 -0
  196. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.d.ts.map +1 -0
  197. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js +25 -0
  198. package/dist/tests/units/interface-adapters/controllers/http/settings.routes.test.js.map +1 -0
  199. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js +25 -0
  200. package/dist/tests/units/interface-adapters/controllers/http/version.routes.test.js.map +1 -1
  201. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.d.ts +2 -0
  202. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.d.ts.map +1 -0
  203. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js +117 -0
  204. package/dist/tests/units/interface-adapters/gateways/insights.gateway.test.js.map +1 -0
  205. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js +84 -16
  206. package/dist/tests/units/interface-adapters/gateways/selfUpdate.cli.gateway.test.js.map +1 -1
  207. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.d.ts +2 -0
  208. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.d.ts.map +1 -0
  209. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js +194 -0
  210. package/dist/tests/units/interface-adapters/presenters/insights.presenter.test.js.map +1 -0
  211. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.d.ts +2 -0
  212. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.d.ts.map +1 -0
  213. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js +224 -0
  214. package/dist/tests/units/interface-adapters/views/dashboard/modules/developerSheet.test.js.map +1 -0
  215. package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js +29 -0
  216. package/dist/tests/units/interface-adapters/views/dashboard/modules/i18n.test.js.map +1 -1
  217. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.d.ts +2 -0
  218. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.d.ts.map +1 -0
  219. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js +326 -0
  220. package/dist/tests/units/interface-adapters/views/dashboard/modules/insightsReport.test.js.map +1 -0
  221. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.d.ts +2 -0
  222. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.d.ts.map +1 -0
  223. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js +336 -0
  224. package/dist/tests/units/interface-adapters/views/dashboard/modules/teamTab.test.js.map +1 -0
  225. package/dist/tests/units/services/statsService.addReview.test.d.ts +2 -0
  226. package/dist/tests/units/services/statsService.addReview.test.d.ts.map +1 -0
  227. package/dist/tests/units/services/statsService.addReview.test.js +103 -0
  228. package/dist/tests/units/services/statsService.addReview.test.js.map +1 -0
  229. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.d.ts +2 -0
  230. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.d.ts.map +1 -0
  231. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js +172 -0
  232. package/dist/tests/units/usecases/insights/buildAiInsightsPrompt.test.js.map +1 -0
  233. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.d.ts +2 -0
  234. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.d.ts.map +1 -0
  235. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js +449 -0
  236. package/dist/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.js.map +1 -0
  237. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.d.ts +2 -0
  238. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.d.ts.map +1 -0
  239. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js +326 -0
  240. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js.map +1 -0
  241. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.d.ts +2 -0
  242. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.d.ts.map +1 -0
  243. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js +172 -0
  244. package/dist/tests/units/usecases/insights/computeTeamInsights.usecase.test.js.map +1 -0
  245. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.d.ts +2 -0
  246. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.d.ts.map +1 -0
  247. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js +253 -0
  248. package/dist/tests/units/usecases/insights/generateAiInsights.usecase.test.js.map +1 -0
  249. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.d.ts +2 -0
  250. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.d.ts.map +1 -0
  251. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js +160 -0
  252. package/dist/tests/units/usecases/insights/getInsightsWithAiStatus.usecase.test.js.map +1 -0
  253. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.d.ts +2 -0
  254. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.d.ts.map +1 -0
  255. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js +125 -0
  256. package/dist/tests/units/usecases/insights/insightLevelComputation.service.test.js.map +1 -0
  257. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js +5 -0
  258. package/dist/tests/units/usecases/version/triggerSelfUpdate.usecase.test.js.map +1 -1
  259. package/dist/usecases/insights/buildAiInsightsPrompt.d.ts +12 -0
  260. package/dist/usecases/insights/buildAiInsightsPrompt.d.ts.map +1 -0
  261. package/dist/usecases/insights/buildAiInsightsPrompt.js +220 -0
  262. package/dist/usecases/insights/buildAiInsightsPrompt.js.map +1 -0
  263. package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts +4 -0
  264. package/dist/usecases/insights/computeDeveloperInsights.usecase.d.ts.map +1 -0
  265. package/dist/usecases/insights/computeDeveloperInsights.usecase.js +226 -0
  266. package/dist/usecases/insights/computeDeveloperInsights.usecase.js.map +1 -0
  267. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts +12 -0
  268. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.d.ts.map +1 -0
  269. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js +340 -0
  270. package/dist/usecases/insights/computeInsightsWithPersistence.usecase.js.map +1 -0
  271. package/dist/usecases/insights/computeTeamInsights.usecase.d.ts +4 -0
  272. package/dist/usecases/insights/computeTeamInsights.usecase.d.ts.map +1 -0
  273. package/dist/usecases/insights/computeTeamInsights.usecase.js +111 -0
  274. package/dist/usecases/insights/computeTeamInsights.usecase.js.map +1 -0
  275. package/dist/usecases/insights/generateAiInsights.usecase.d.ts +27 -0
  276. package/dist/usecases/insights/generateAiInsights.usecase.d.ts.map +1 -0
  277. package/dist/usecases/insights/generateAiInsights.usecase.js +65 -0
  278. package/dist/usecases/insights/generateAiInsights.usecase.js.map +1 -0
  279. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts +18 -0
  280. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.d.ts.map +1 -0
  281. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js +56 -0
  282. package/dist/usecases/insights/getInsightsWithAiStatus.usecase.js.map +1 -0
  283. package/dist/usecases/insights/insightLevelComputation.service.d.ts +41 -0
  284. package/dist/usecases/insights/insightLevelComputation.service.d.ts.map +1 -0
  285. package/dist/usecases/insights/insightLevelComputation.service.js +313 -0
  286. package/dist/usecases/insights/insightLevelComputation.service.js.map +1 -0
  287. package/dist/usecases/version/triggerSelfUpdate.usecase.d.ts.map +1 -1
  288. package/dist/usecases/version/triggerSelfUpdate.usecase.js +3 -0
  289. package/dist/usecases/version/triggerSelfUpdate.usecase.js.map +1 -1
  290. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeDeveloperInsights.usecase.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/computeDeveloperInsights.usecase.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=computeInsightsWithPersistence.usecase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeInsightsWithPersistence.usecase.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,326 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { computeInsightsWithPersistence } from '../../../../usecases/insights/computeInsightsWithPersistence.usecase.js';
3
+ import { computeDeveloperInsights } from '../../../../usecases/insights/computeDeveloperInsights.usecase.js';
4
+ import { computeTeamInsights } from '../../../../usecases/insights/computeTeamInsights.usecase.js';
5
+ import { ReviewStatsFactory } from '../../../../tests/factories/projectStats.factory.js';
6
+ import { PersistedInsightsDataFactory, PersistedDeveloperMetricsFactory } from '../../../../tests/factories/persistedInsightsData.factory.js';
7
+ function createReviewsForDeveloper(developerName, count, overrides = {}) {
8
+ return Array.from({ length: count }, (_, index) => ReviewStatsFactory.create({
9
+ id: `${developerName}-${index}`,
10
+ assignedBy: developerName,
11
+ mrNumber: index + 1,
12
+ timestamp: new Date(2024, 0, index + 1).toISOString(),
13
+ ...overrides,
14
+ }));
15
+ }
16
+ describe('computeInsightsWithPersistence', () => {
17
+ describe('first run (no persisted data)', () => {
18
+ it('should return same developer insights as computeDeveloperInsights when persistedData is null', () => {
19
+ const reviews = createReviewsForDeveloper('alice', 6, { score: 8, blocking: 0, warnings: 1 });
20
+ const result = computeInsightsWithPersistence(reviews, null);
21
+ const expectedInsights = computeDeveloperInsights(reviews);
22
+ const expectedTeam = computeTeamInsights(expectedInsights);
23
+ expect(result.developerInsights).toEqual(expectedInsights);
24
+ expect(result.teamInsight).toEqual(expectedTeam);
25
+ });
26
+ it('should return persistedData with all review IDs marked as processed', () => {
27
+ const reviews = createReviewsForDeveloper('alice', 6, { score: 8 });
28
+ const result = computeInsightsWithPersistence(reviews, null);
29
+ const reviewIds = reviews.map((review) => review.id);
30
+ for (const id of reviewIds) {
31
+ expect(result.persistedData.processedReviewIds).toContain(id);
32
+ }
33
+ });
34
+ it('should return empty insights for reviews without assignedBy', () => {
35
+ const reviews = [
36
+ ReviewStatsFactory.create({ id: 'r1', assignedBy: undefined }),
37
+ ReviewStatsFactory.create({ id: 'r2', assignedBy: undefined }),
38
+ ];
39
+ const result = computeInsightsWithPersistence(reviews, null);
40
+ expect(result.developerInsights).toEqual([]);
41
+ });
42
+ });
43
+ describe('identifying new reviews', () => {
44
+ it('should only process reviews not in processedReviewIds', () => {
45
+ const reviews = [
46
+ ...createReviewsForDeveloper('alice', 3, { score: 8 }),
47
+ ReviewStatsFactory.create({
48
+ id: 'alice-new-1',
49
+ assignedBy: 'alice',
50
+ mrNumber: 100,
51
+ score: 9,
52
+ }),
53
+ ];
54
+ const existingIds = reviews.slice(0, 3).map((review) => review.id);
55
+ const persistedData = PersistedInsightsDataFactory.create({
56
+ developers: [PersistedDeveloperMetricsFactory.create({
57
+ developerName: 'alice',
58
+ totalReviews: 3,
59
+ totalScore: 24,
60
+ scoredReviewCount: 3,
61
+ totalBlocking: 3,
62
+ totalWarnings: 6,
63
+ totalSuggestions: 9,
64
+ totalDuration: 180000,
65
+ totalAdditions: 0,
66
+ totalDeletions: 0,
67
+ diffStatsReviewCount: 0,
68
+ recentReviews: reviews.slice(0, 3),
69
+ })],
70
+ processedReviewIds: existingIds,
71
+ });
72
+ const result = computeInsightsWithPersistence(reviews, persistedData);
73
+ expect(result.persistedData.processedReviewIds).toContain('alice-new-1');
74
+ expect(result.persistedData.processedReviewIds).toHaveLength(4);
75
+ });
76
+ });
77
+ describe('cumulative metrics update', () => {
78
+ it('should update cumulative metrics when new reviews arrive', () => {
79
+ const existingReviews = createReviewsForDeveloper('alice', 5, {
80
+ score: 7,
81
+ blocking: 1,
82
+ warnings: 2,
83
+ suggestions: 3,
84
+ duration: 60000,
85
+ });
86
+ const newReview = ReviewStatsFactory.create({
87
+ id: 'alice-new',
88
+ assignedBy: 'alice',
89
+ mrNumber: 100,
90
+ score: 9,
91
+ blocking: 0,
92
+ warnings: 0,
93
+ suggestions: 1,
94
+ duration: 30000,
95
+ });
96
+ const persistedData = PersistedInsightsDataFactory.create({
97
+ developers: [PersistedDeveloperMetricsFactory.create({
98
+ developerName: 'alice',
99
+ totalReviews: 5,
100
+ totalScore: 35,
101
+ scoredReviewCount: 5,
102
+ totalBlocking: 5,
103
+ totalWarnings: 10,
104
+ totalSuggestions: 15,
105
+ totalDuration: 300000,
106
+ totalAdditions: 0,
107
+ totalDeletions: 0,
108
+ diffStatsReviewCount: 0,
109
+ recentReviews: existingReviews,
110
+ })],
111
+ processedReviewIds: existingReviews.map((review) => review.id),
112
+ });
113
+ const allReviews = [...existingReviews, newReview];
114
+ const result = computeInsightsWithPersistence(allReviews, persistedData);
115
+ const aliceMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'alice');
116
+ expect(aliceMetrics).toBeDefined();
117
+ expect(aliceMetrics?.totalReviews).toBe(6);
118
+ expect(aliceMetrics?.totalScore).toBe(44);
119
+ expect(aliceMetrics?.scoredReviewCount).toBe(6);
120
+ expect(aliceMetrics?.totalBlocking).toBe(5);
121
+ expect(aliceMetrics?.totalWarnings).toBe(10);
122
+ expect(aliceMetrics?.totalSuggestions).toBe(16);
123
+ expect(aliceMetrics?.totalDuration).toBe(330000);
124
+ });
125
+ it('should handle reviews with null scores in cumulative update', () => {
126
+ const existingReviews = createReviewsForDeveloper('alice', 5, { score: 7 });
127
+ const newReview = ReviewStatsFactory.create({
128
+ id: 'alice-null-score',
129
+ assignedBy: 'alice',
130
+ mrNumber: 100,
131
+ score: null,
132
+ });
133
+ const persistedData = PersistedInsightsDataFactory.create({
134
+ developers: [PersistedDeveloperMetricsFactory.create({
135
+ developerName: 'alice',
136
+ totalReviews: 5,
137
+ totalScore: 35,
138
+ scoredReviewCount: 5,
139
+ recentReviews: existingReviews,
140
+ })],
141
+ processedReviewIds: existingReviews.map((review) => review.id),
142
+ });
143
+ const allReviews = [...existingReviews, newReview];
144
+ const result = computeInsightsWithPersistence(allReviews, persistedData);
145
+ const aliceMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'alice');
146
+ expect(aliceMetrics?.totalReviews).toBe(6);
147
+ expect(aliceMetrics?.scoredReviewCount).toBe(5);
148
+ expect(aliceMetrics?.totalScore).toBe(35);
149
+ });
150
+ });
151
+ describe('recent reviews window', () => {
152
+ it('should keep only last 20 recent reviews per developer', () => {
153
+ const existingReviews = Array.from({ length: 19 }, (_, index) => ReviewStatsFactory.create({
154
+ id: `alice-${index}`,
155
+ assignedBy: 'alice',
156
+ mrNumber: index + 1,
157
+ score: 7,
158
+ timestamp: new Date(2024, 0, index + 1).toISOString(),
159
+ }));
160
+ const newReviews = Array.from({ length: 3 }, (_, index) => ReviewStatsFactory.create({
161
+ id: `alice-new-${index}`,
162
+ assignedBy: 'alice',
163
+ mrNumber: 100 + index,
164
+ score: 8,
165
+ timestamp: new Date(2024, 6, index + 1).toISOString(),
166
+ }));
167
+ const persistedData = PersistedInsightsDataFactory.create({
168
+ developers: [PersistedDeveloperMetricsFactory.create({
169
+ developerName: 'alice',
170
+ totalReviews: 19,
171
+ totalScore: 133,
172
+ scoredReviewCount: 19,
173
+ recentReviews: existingReviews,
174
+ })],
175
+ processedReviewIds: existingReviews.map((review) => review.id),
176
+ });
177
+ const allReviews = [...existingReviews, ...newReviews];
178
+ const result = computeInsightsWithPersistence(allReviews, persistedData);
179
+ const aliceMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'alice');
180
+ expect(aliceMetrics?.recentReviews).toHaveLength(20);
181
+ expect(aliceMetrics?.recentReviews.some((review) => review.id === 'alice-new-2')).toBe(true);
182
+ });
183
+ });
184
+ describe('developer crossing threshold', () => {
185
+ it('should include developer in insights once they cross 5-review threshold', () => {
186
+ const existingReviews = createReviewsForDeveloper('alice', 4, { score: 7 });
187
+ const newReview = ReviewStatsFactory.create({
188
+ id: 'alice-5th',
189
+ assignedBy: 'alice',
190
+ mrNumber: 100,
191
+ score: 8,
192
+ });
193
+ const persistedData = PersistedInsightsDataFactory.create({
194
+ developers: [PersistedDeveloperMetricsFactory.create({
195
+ developerName: 'alice',
196
+ totalReviews: 4,
197
+ totalScore: 28,
198
+ scoredReviewCount: 4,
199
+ totalBlocking: 4,
200
+ totalWarnings: 8,
201
+ totalSuggestions: 12,
202
+ totalDuration: 240000,
203
+ totalAdditions: 0,
204
+ totalDeletions: 0,
205
+ diffStatsReviewCount: 0,
206
+ recentReviews: existingReviews,
207
+ })],
208
+ processedReviewIds: existingReviews.map((review) => review.id),
209
+ });
210
+ const allReviews = [...existingReviews, newReview];
211
+ const result = computeInsightsWithPersistence(allReviews, persistedData);
212
+ expect(result.developerInsights).toHaveLength(1);
213
+ expect(result.developerInsights[0].developerName).toBe('alice');
214
+ expect(result.persistedData.developers[0].totalReviews).toBe(5);
215
+ });
216
+ });
217
+ describe('preserving historical data', () => {
218
+ it('should preserve cumulative data even when current reviews are empty', () => {
219
+ const persistedData = PersistedInsightsDataFactory.create({
220
+ developers: [PersistedDeveloperMetricsFactory.create({
221
+ developerName: 'alice',
222
+ totalReviews: 20,
223
+ totalScore: 160,
224
+ scoredReviewCount: 20,
225
+ totalBlocking: 10,
226
+ totalWarnings: 20,
227
+ totalSuggestions: 30,
228
+ totalDuration: 1200000,
229
+ totalAdditions: 5000,
230
+ totalDeletions: 1000,
231
+ diffStatsReviewCount: 15,
232
+ recentReviews: createReviewsForDeveloper('alice', 15, { score: 8 }),
233
+ })],
234
+ processedReviewIds: Array.from({ length: 20 }, (_, index) => `old-${index}`),
235
+ });
236
+ const result = computeInsightsWithPersistence([], persistedData);
237
+ const aliceMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'alice');
238
+ expect(aliceMetrics?.totalReviews).toBe(20);
239
+ expect(aliceMetrics?.totalScore).toBe(160);
240
+ expect(result.developerInsights).toHaveLength(1);
241
+ expect(result.developerInsights[0].developerName).toBe('alice');
242
+ });
243
+ });
244
+ describe('correct averages from cumulative data', () => {
245
+ it('should compute averages from totalScore/scoredReviewCount', () => {
246
+ const recentReviews = createReviewsForDeveloper('alice', 10, { score: 8 });
247
+ const persistedData = PersistedInsightsDataFactory.create({
248
+ developers: [PersistedDeveloperMetricsFactory.create({
249
+ developerName: 'alice',
250
+ totalReviews: 50,
251
+ totalScore: 400,
252
+ scoredReviewCount: 50,
253
+ totalBlocking: 25,
254
+ totalWarnings: 50,
255
+ totalSuggestions: 75,
256
+ totalDuration: 3000000,
257
+ totalAdditions: 10000,
258
+ totalDeletions: 2000,
259
+ diffStatsReviewCount: 40,
260
+ recentReviews,
261
+ })],
262
+ processedReviewIds: Array.from({ length: 50 }, (_, index) => `old-${index}`),
263
+ });
264
+ const result = computeInsightsWithPersistence([], persistedData);
265
+ expect(result.developerInsights).toHaveLength(1);
266
+ const alice = result.developerInsights[0];
267
+ expect(alice.overallLevel).toBeGreaterThanOrEqual(1);
268
+ expect(alice.overallLevel).toBeLessThanOrEqual(10);
269
+ });
270
+ });
271
+ describe('new developer appearing', () => {
272
+ it('should add new developer to persisted data', () => {
273
+ const persistedData = PersistedInsightsDataFactory.create({
274
+ developers: [PersistedDeveloperMetricsFactory.create({
275
+ developerName: 'alice',
276
+ totalReviews: 10,
277
+ recentReviews: createReviewsForDeveloper('alice', 10, { score: 7 }),
278
+ })],
279
+ processedReviewIds: Array.from({ length: 10 }, (_, index) => `alice-${index}`),
280
+ });
281
+ const bobReviews = createReviewsForDeveloper('bob', 3, { score: 8 });
282
+ const result = computeInsightsWithPersistence(bobReviews, persistedData);
283
+ const bobMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'bob');
284
+ expect(bobMetrics).toBeDefined();
285
+ expect(bobMetrics?.totalReviews).toBe(3);
286
+ });
287
+ });
288
+ describe('reviews without assignedBy', () => {
289
+ it('should skip reviews without assignedBy when updating metrics', () => {
290
+ const review = ReviewStatsFactory.create({
291
+ id: 'no-author',
292
+ assignedBy: undefined,
293
+ score: 7,
294
+ });
295
+ const result = computeInsightsWithPersistence([review], null);
296
+ expect(result.persistedData.developers).toHaveLength(0);
297
+ expect(result.persistedData.processedReviewIds).toContain('no-author');
298
+ });
299
+ });
300
+ describe('valid persisted data for saving', () => {
301
+ it('should return valid PersistedInsightsData structure', () => {
302
+ const reviews = createReviewsForDeveloper('alice', 6, { score: 8 });
303
+ const result = computeInsightsWithPersistence(reviews, null);
304
+ expect(result.persistedData.developers).toBeDefined();
305
+ expect(Array.isArray(result.persistedData.developers)).toBe(true);
306
+ expect(result.persistedData.processedReviewIds).toBeDefined();
307
+ expect(Array.isArray(result.persistedData.processedReviewIds)).toBe(true);
308
+ expect(result.persistedData.lastUpdated).toBeDefined();
309
+ expect(typeof result.persistedData.lastUpdated).toBe('string');
310
+ });
311
+ });
312
+ describe('diffStats tracking', () => {
313
+ it('should track diffStats in cumulative metrics', () => {
314
+ const reviews = createReviewsForDeveloper('alice', 5, {
315
+ score: 8,
316
+ diffStats: { commitsCount: 3, additions: 200, deletions: 50 },
317
+ });
318
+ const result = computeInsightsWithPersistence(reviews, null);
319
+ const aliceMetrics = result.persistedData.developers.find((developer) => developer.developerName === 'alice');
320
+ expect(aliceMetrics?.totalAdditions).toBe(1000);
321
+ expect(aliceMetrics?.totalDeletions).toBe(250);
322
+ expect(aliceMetrics?.diffStatsReviewCount).toBe(5);
323
+ });
324
+ });
325
+ });
326
+ //# sourceMappingURL=computeInsightsWithPersistence.usecase.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeInsightsWithPersistence.usecase.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=computeTeamInsights.usecase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeTeamInsights.usecase.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/computeTeamInsights.usecase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { computeTeamInsights } from '../../../../usecases/insights/computeTeamInsights.usecase.js';
3
+ import { DeveloperInsightFactory } from '../../../../tests/factories/developerInsight.factory.js';
4
+ describe('computeTeamInsights', () => {
5
+ it('should return empty team insight when no developers provided', () => {
6
+ const result = computeTeamInsights([]);
7
+ expect(result.developerCount).toBe(0);
8
+ expect(result.totalReviewCount).toBe(0);
9
+ expect(result.strengths).toEqual([]);
10
+ expect(result.weaknesses).toEqual([]);
11
+ expect(result.tips).toEqual([]);
12
+ });
13
+ it('should count developers and total reviews', () => {
14
+ const insights = [
15
+ DeveloperInsightFactory.createValid({
16
+ developerName: 'alice',
17
+ reviewCount: 10,
18
+ }),
19
+ DeveloperInsightFactory.createValid({
20
+ developerName: 'bob',
21
+ reviewCount: 8,
22
+ }),
23
+ ];
24
+ const result = computeTeamInsights(insights);
25
+ expect(result.developerCount).toBe(2);
26
+ expect(result.totalReviewCount).toBe(18);
27
+ });
28
+ it('should compute average levels across all developers', () => {
29
+ const insights = [
30
+ DeveloperInsightFactory.createValid({
31
+ developerName: 'alice',
32
+ categoryLevels: {
33
+ quality: { level: 8, trend: 'stable' },
34
+ responsiveness: { level: 6, trend: 'stable' },
35
+ codeVolume: { level: 4, trend: 'stable' },
36
+ iteration: { level: 7, trend: 'stable' },
37
+ },
38
+ }),
39
+ DeveloperInsightFactory.createValid({
40
+ developerName: 'bob',
41
+ categoryLevels: {
42
+ quality: { level: 6, trend: 'stable' },
43
+ responsiveness: { level: 8, trend: 'stable' },
44
+ codeVolume: { level: 6, trend: 'stable' },
45
+ iteration: { level: 5, trend: 'stable' },
46
+ },
47
+ }),
48
+ ];
49
+ const result = computeTeamInsights(insights);
50
+ expect(result.averageLevels.quality).toBe(7);
51
+ expect(result.averageLevels.responsiveness).toBe(7);
52
+ expect(result.averageLevels.codeVolume).toBe(5);
53
+ expect(result.averageLevels.iteration).toBe(6);
54
+ });
55
+ it('should identify team strengths when average level >= 7', () => {
56
+ const insights = [
57
+ DeveloperInsightFactory.createValid({
58
+ developerName: 'alice',
59
+ categoryLevels: {
60
+ quality: { level: 8, trend: 'stable' },
61
+ responsiveness: { level: 8, trend: 'stable' },
62
+ codeVolume: { level: 3, trend: 'stable' },
63
+ iteration: { level: 3, trend: 'stable' },
64
+ },
65
+ }),
66
+ DeveloperInsightFactory.createValid({
67
+ developerName: 'bob',
68
+ categoryLevels: {
69
+ quality: { level: 8, trend: 'stable' },
70
+ responsiveness: { level: 6, trend: 'stable' },
71
+ codeVolume: { level: 4, trend: 'stable' },
72
+ iteration: { level: 4, trend: 'stable' },
73
+ },
74
+ }),
75
+ ];
76
+ const result = computeTeamInsights(insights);
77
+ expect(result.strengths).toContain('quality');
78
+ });
79
+ it('should identify team weaknesses when average level <= 4', () => {
80
+ const insights = [
81
+ DeveloperInsightFactory.createValid({
82
+ developerName: 'alice',
83
+ categoryLevels: {
84
+ quality: { level: 8, trend: 'stable' },
85
+ responsiveness: { level: 3, trend: 'stable' },
86
+ codeVolume: { level: 3, trend: 'stable' },
87
+ iteration: { level: 7, trend: 'stable' },
88
+ },
89
+ }),
90
+ DeveloperInsightFactory.createValid({
91
+ developerName: 'bob',
92
+ categoryLevels: {
93
+ quality: { level: 7, trend: 'stable' },
94
+ responsiveness: { level: 4, trend: 'stable' },
95
+ codeVolume: { level: 3, trend: 'stable' },
96
+ iteration: { level: 6, trend: 'stable' },
97
+ },
98
+ }),
99
+ ];
100
+ const result = computeTeamInsights(insights);
101
+ expect(result.weaknesses).toContain('codeVolume');
102
+ });
103
+ it('should generate tips based on team patterns', () => {
104
+ const insights = [
105
+ DeveloperInsightFactory.createValid({
106
+ developerName: 'alice',
107
+ categoryLevels: {
108
+ quality: { level: 3, trend: 'declining' },
109
+ responsiveness: { level: 5, trend: 'stable' },
110
+ codeVolume: { level: 5, trend: 'stable' },
111
+ iteration: { level: 5, trend: 'stable' },
112
+ },
113
+ }),
114
+ DeveloperInsightFactory.createValid({
115
+ developerName: 'bob',
116
+ categoryLevels: {
117
+ quality: { level: 3, trend: 'declining' },
118
+ responsiveness: { level: 5, trend: 'stable' },
119
+ codeVolume: { level: 5, trend: 'stable' },
120
+ iteration: { level: 5, trend: 'stable' },
121
+ },
122
+ }),
123
+ ];
124
+ const result = computeTeamInsights(insights);
125
+ expect(result.tips.length).toBeGreaterThan(0);
126
+ });
127
+ it('should produce valid average levels between 1 and 10', () => {
128
+ const insights = [
129
+ DeveloperInsightFactory.createValid({
130
+ developerName: 'alice',
131
+ categoryLevels: {
132
+ quality: { level: 1, trend: 'stable' },
133
+ responsiveness: { level: 10, trend: 'stable' },
134
+ codeVolume: { level: 5, trend: 'stable' },
135
+ iteration: { level: 5, trend: 'stable' },
136
+ },
137
+ }),
138
+ DeveloperInsightFactory.createValid({
139
+ developerName: 'bob',
140
+ categoryLevels: {
141
+ quality: { level: 10, trend: 'stable' },
142
+ responsiveness: { level: 1, trend: 'stable' },
143
+ codeVolume: { level: 5, trend: 'stable' },
144
+ iteration: { level: 5, trend: 'stable' },
145
+ },
146
+ }),
147
+ ];
148
+ const result = computeTeamInsights(insights);
149
+ for (const level of Object.values(result.averageLevels)) {
150
+ expect(level).toBeGreaterThanOrEqual(1);
151
+ expect(level).toBeLessThanOrEqual(10);
152
+ }
153
+ });
154
+ it('should handle single developer team', () => {
155
+ const insights = [
156
+ DeveloperInsightFactory.createValid({
157
+ developerName: 'alice',
158
+ reviewCount: 10,
159
+ categoryLevels: {
160
+ quality: { level: 8, trend: 'stable' },
161
+ responsiveness: { level: 7, trend: 'stable' },
162
+ codeVolume: { level: 6, trend: 'stable' },
163
+ iteration: { level: 5, trend: 'stable' },
164
+ },
165
+ }),
166
+ ];
167
+ const result = computeTeamInsights(insights);
168
+ expect(result.developerCount).toBe(1);
169
+ expect(result.averageLevels.quality).toBe(8);
170
+ });
171
+ });
172
+ //# sourceMappingURL=computeTeamInsights.usecase.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeTeamInsights.usecase.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/computeTeamInsights.usecase.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generateAiInsights.usecase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateAiInsights.usecase.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/insights/generateAiInsights.usecase.test.ts"],"names":[],"mappings":""}