reviewflow 3.20.0 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/config/projectConfig.d.ts +7 -0
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js +18 -0
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/dashboard/index.html +626 -175
- package/dist/dashboard/modules/animations.d.ts +164 -0
- package/dist/dashboard/modules/animations.d.ts.map +1 -0
- package/dist/dashboard/modules/animations.js +405 -0
- package/dist/dashboard/modules/animations.js.map +1 -0
- package/dist/dashboard/modules/cardCounters.d.ts +47 -0
- package/dist/dashboard/modules/cardCounters.d.ts.map +1 -0
- package/dist/dashboard/modules/cardCounters.js +74 -0
- package/dist/dashboard/modules/cardCounters.js.map +1 -0
- package/dist/dashboard/modules/i18n.d.ts.map +1 -1
- package/dist/dashboard/modules/i18n.js +20 -2
- package/dist/dashboard/modules/i18n.js.map +1 -1
- package/dist/dashboard/modules/managePanel.d.ts +49 -0
- package/dist/dashboard/modules/managePanel.d.ts.map +1 -0
- package/dist/dashboard/modules/managePanel.js +123 -0
- package/dist/dashboard/modules/managePanel.js.map +1 -0
- package/dist/dashboard/modules/overview.d.ts +1 -0
- package/dist/dashboard/modules/overview.d.ts.map +1 -1
- package/dist/dashboard/modules/overview.js +14 -0
- package/dist/dashboard/modules/overview.js.map +1 -1
- package/dist/dashboard/modules/settingsModal.d.ts +77 -0
- package/dist/dashboard/modules/settingsModal.d.ts.map +1 -0
- package/dist/dashboard/modules/settingsModal.js +202 -0
- package/dist/dashboard/modules/settingsModal.js.map +1 -0
- package/dist/dashboard/modules/tabBar.d.ts +4 -0
- package/dist/dashboard/modules/tabBar.d.ts.map +1 -1
- package/dist/dashboard/modules/tabBar.js +6 -1
- package/dist/dashboard/modules/tabBar.js.map +1 -1
- package/dist/dashboard/styles.css +1373 -402
- package/dist/frameworks/config/configLoader.d.ts +8 -0
- package/dist/frameworks/config/configLoader.d.ts.map +1 -1
- package/dist/frameworks/config/configLoader.js +18 -0
- package/dist/frameworks/config/configLoader.js.map +1 -1
- package/dist/main/routes.d.ts.map +1 -1
- package/dist/main/routes.js +47 -2
- package/dist/main/routes.js.map +1 -1
- package/dist/main/server.d.ts.map +1 -1
- package/dist/main/server.js +22 -0
- package/dist/main/server.js.map +1 -1
- package/dist/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.d.ts +1 -0
- package/dist/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.d.ts.map +1 -1
- package/dist/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.js +26 -5
- package/dist/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.js.map +1 -1
- package/dist/modules/cli-configuration/entities/projectConfig/projectConfig.gateway.d.ts +20 -0
- package/dist/modules/cli-configuration/entities/projectConfig/projectConfig.gateway.d.ts.map +1 -0
- package/dist/modules/cli-configuration/entities/projectConfig/projectConfig.gateway.js +2 -0
- package/dist/modules/cli-configuration/entities/projectConfig/projectConfig.gateway.js.map +1 -0
- package/dist/modules/cli-configuration/entities/repositoryEntry/repositoryEntry.d.ts +13 -0
- package/dist/modules/cli-configuration/entities/repositoryEntry/repositoryEntry.d.ts.map +1 -0
- package/dist/modules/cli-configuration/entities/repositoryEntry/repositoryEntry.js +2 -0
- package/dist/modules/cli-configuration/entities/repositoryEntry/repositoryEntry.js.map +1 -0
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.d.ts +6 -1
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.d.ts.map +1 -1
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.js +116 -13
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.js.map +1 -1
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.d.ts +36 -0
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.d.ts.map +1 -1
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.js +78 -8
- package/dist/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.js.map +1 -1
- package/dist/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.d.ts +7 -0
- package/dist/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.d.ts.map +1 -0
- package/dist/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.js +48 -0
- package/dist/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.d.ts +1 -6
- package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.d.ts.map +1 -1
- package/dist/modules/cli-configuration/usecases/cli/addRepositoriesToConfig.usecase.js.map +1 -1
- package/dist/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.d.ts +21 -0
- package/dist/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.js +27 -0
- package/dist/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.d.ts +22 -0
- package/dist/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.js +27 -0
- package/dist/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/cli/writeInitConfig.usecase.d.ts +1 -6
- package/dist/modules/cli-configuration/usecases/cli/writeInitConfig.usecase.d.ts.map +1 -1
- package/dist/modules/cli-configuration/usecases/cli/writeInitConfig.usecase.js.map +1 -1
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/addRepositoryFromDashboard.usecase.d.ts +19 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/addRepositoryFromDashboard.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/addRepositoryFromDashboard.usecase.js +30 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/addRepositoryFromDashboard.usecase.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/removeRepositoryFromDashboard.usecase.d.ts +16 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/removeRepositoryFromDashboard.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/removeRepositoryFromDashboard.usecase.js +27 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/removeRepositoryFromDashboard.usecase.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/updateRepositoryEnabledFromDashboard.usecase.d.ts +17 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/updateRepositoryEnabledFromDashboard.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/updateRepositoryEnabledFromDashboard.usecase.js +28 -0
- package/dist/modules/cli-configuration/usecases/dashboardRepositories/updateRepositoryEnabledFromDashboard.usecase.js.map +1 -0
- package/dist/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.d.ts +31 -0
- package/dist/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.d.ts.map +1 -0
- package/dist/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.js +102 -0
- package/dist/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.js.map +1 -0
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.d.ts.map +1 -1
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js +3 -0
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js.map +1 -1
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +1 -1
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js +3 -0
- package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js.map +1 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContext.gateway.d.ts +1 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContext.gateway.d.ts.map +1 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContext.schema.d.ts +10 -2
- package/dist/modules/review-execution/entities/reviewContext/reviewContext.schema.d.ts.map +1 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.factory.d.ts +11 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.factory.d.ts.map +1 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.factory.js +22 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.factory.js.map +1 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.d.ts +10 -0
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.guard.d.ts.map +1 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.d.ts +31 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.d.ts.map +1 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.js +11 -1
- package/dist/modules/review-execution/entities/reviewContext/reviewContextResult.schema.js.map +1 -1
- package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts +1 -0
- package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.d.ts.map +1 -1
- package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.js +27 -1
- package/dist/modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.js.map +1 -1
- package/dist/modules/review-execution/services/reviewRecovery.service.d.ts +33 -0
- package/dist/modules/review-execution/services/reviewRecovery.service.d.ts.map +1 -0
- package/dist/modules/review-execution/services/reviewRecovery.service.js +80 -0
- package/dist/modules/review-execution/services/reviewRecovery.service.js.map +1 -0
- package/dist/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.d.ts +2 -0
- package/dist/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.d.ts.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.js +14 -0
- package/dist/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.js.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/presenters/overview.presenter.d.ts +5 -0
- package/dist/modules/statistics-insights/interface-adapters/presenters/overview.presenter.d.ts.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/presenters/overview.presenter.js +20 -4
- package/dist/modules/statistics-insights/interface-adapters/presenters/overview.presenter.js.map +1 -1
- package/dist/tests/acceptance/177-dashboard-add-project-ui.acceptance.test.d.ts +12 -0
- package/dist/tests/acceptance/177-dashboard-add-project-ui.acceptance.test.d.ts.map +1 -0
- package/dist/tests/acceptance/177-dashboard-add-project-ui.acceptance.test.js +304 -0
- package/dist/tests/acceptance/177-dashboard-add-project-ui.acceptance.test.js.map +1 -0
- package/dist/tests/acceptance/178-dashboard-tabs-reposition.acceptance.test.d.ts +12 -0
- package/dist/tests/acceptance/178-dashboard-tabs-reposition.acceptance.test.d.ts.map +1 -0
- package/dist/tests/acceptance/178-dashboard-tabs-reposition.acceptance.test.js +131 -0
- package/dist/tests/acceptance/178-dashboard-tabs-reposition.acceptance.test.js.map +1 -0
- package/dist/tests/acceptance/179-dashboard-project-settings-modal.acceptance.test.d.ts +12 -0
- package/dist/tests/acceptance/179-dashboard-project-settings-modal.acceptance.test.d.ts.map +1 -0
- package/dist/tests/acceptance/179-dashboard-project-settings-modal.acceptance.test.js +312 -0
- package/dist/tests/acceptance/179-dashboard-project-settings-modal.acceptance.test.js.map +1 -0
- package/dist/tests/acceptance/91-dashboard-multi-project-overview.acceptance.test.js +5 -0
- package/dist/tests/acceptance/91-dashboard-multi-project-overview.acceptance.test.js.map +1 -1
- package/dist/tests/stubs/projectConfigGateway.stub.d.ts +15 -0
- package/dist/tests/stubs/projectConfigGateway.stub.d.ts.map +1 -0
- package/dist/tests/stubs/projectConfigGateway.stub.js +40 -0
- package/dist/tests/stubs/projectConfigGateway.stub.js.map +1 -0
- package/dist/tests/stubs/reviewContextGateway.stub.d.ts +1 -0
- package/dist/tests/stubs/reviewContextGateway.stub.d.ts.map +1 -1
- package/dist/tests/stubs/reviewContextGateway.stub.js +3 -0
- package/dist/tests/stubs/reviewContextGateway.stub.js.map +1 -1
- package/dist/tests/units/config/projectConfig.test.js +43 -0
- package/dist/tests/units/config/projectConfig.test.js.map +1 -1
- package/dist/tests/units/dashboard/modules/animations.test.d.ts +10 -0
- package/dist/tests/units/dashboard/modules/animations.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/modules/animations.test.js +223 -0
- package/dist/tests/units/dashboard/modules/animations.test.js.map +1 -0
- package/dist/tests/units/dashboard/modules/cardCounters.test.d.ts +2 -0
- package/dist/tests/units/dashboard/modules/cardCounters.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/modules/cardCounters.test.js +162 -0
- package/dist/tests/units/dashboard/modules/cardCounters.test.js.map +1 -0
- package/dist/tests/units/dashboard/modules/managePanel.test.d.ts +2 -0
- package/dist/tests/units/dashboard/modules/managePanel.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/modules/managePanel.test.js +112 -0
- package/dist/tests/units/dashboard/modules/managePanel.test.js.map +1 -0
- package/dist/tests/units/dashboard/modules/overview.test.js +92 -0
- package/dist/tests/units/dashboard/modules/overview.test.js.map +1 -1
- package/dist/tests/units/dashboard/modules/settingsModal.test.d.ts +2 -0
- package/dist/tests/units/dashboard/modules/settingsModal.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/modules/settingsModal.test.js +166 -0
- package/dist/tests/units/dashboard/modules/settingsModal.test.js.map +1 -0
- package/dist/tests/units/dashboard/modules/tabBar.test.js +40 -11
- package/dist/tests/units/dashboard/modules/tabBar.test.js.map +1 -1
- package/dist/tests/units/entities/reviewContext/reviewContext.schema.test.js +1 -0
- package/dist/tests/units/entities/reviewContext/reviewContext.schema.test.js.map +1 -1
- package/dist/tests/units/entities/reviewContext/reviewContextResult.factory.test.d.ts +2 -0
- package/dist/tests/units/entities/reviewContext/reviewContextResult.factory.test.d.ts.map +1 -0
- package/dist/tests/units/entities/reviewContext/reviewContextResult.factory.test.js +43 -0
- package/dist/tests/units/entities/reviewContext/reviewContextResult.factory.test.js.map +1 -0
- package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.js +7 -3
- package/dist/tests/units/entities/reviewContext/reviewContextResult.guard.test.js.map +1 -1
- package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.js +12 -1
- package/dist/tests/units/entities/reviewContext/reviewContextResult.schema.test.js.map +1 -1
- package/dist/tests/units/frameworks/config/configLoader.test.js +35 -1
- package/dist/tests/units/frameworks/config/configLoader.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js +57 -0
- package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js +1 -0
- package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js.map +1 -1
- package/dist/tests/units/interface-adapters/gateways/reviewContext.fileSystem.gateway.test.js +64 -4
- package/dist/tests/units/interface-adapters/gateways/reviewContext.fileSystem.gateway.test.js.map +1 -1
- package/dist/tests/units/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.test.js +56 -0
- package/dist/tests/units/modules/claude-invocation/interface-adapters/gateways/reviewReport.fileSystem.gateway.test.js.map +1 -1
- package/dist/tests/units/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.test.js +111 -0
- package/dist/tests/units/modules/cli-configuration/interface-adapters/controllers/http/projectConfig.routes.test.js.map +1 -1
- package/dist/tests/units/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.test.js +244 -3
- package/dist/tests/units/modules/cli-configuration/interface-adapters/controllers/http/repositories.routes.test.js.map +1 -1
- package/dist/tests/units/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.test.d.ts +2 -0
- package/dist/tests/units/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.test.js +72 -0
- package/dist/tests/units/modules/cli-configuration/interface-adapters/gateways/projectConfig.fileSystem.gateway.test.js.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.test.d.ts +2 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.test.js +76 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/removeRepositoryFromConfig.usecase.test.js.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.test.d.ts +2 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.test.js +84 -0
- package/dist/tests/units/modules/cli-configuration/usecases/cli/toggleRepositoryEnabled.usecase.test.js.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.test.d.ts +2 -0
- package/dist/tests/units/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.test.js +141 -0
- package/dist/tests/units/modules/cli-configuration/usecases/projectConfig/updateProjectConfig.usecase.test.js.map +1 -0
- package/dist/tests/units/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.test.js +44 -0
- package/dist/tests/units/modules/statistics-insights/interface-adapters/controllers/http/overview.routes.test.js.map +1 -1
- package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/overview.presenter.test.js +42 -0
- package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/overview.presenter.test.js.map +1 -1
- package/dist/tests/units/services/reviewRecovery.service.test.d.ts +2 -0
- package/dist/tests/units/services/reviewRecovery.service.test.d.ts.map +1 -0
- package/dist/tests/units/services/reviewRecovery.service.test.js +49 -0
- package/dist/tests/units/services/reviewRecovery.service.test.js.map +1 -0
- package/dist/tests/units/services/runReviewRecovery.service.test.d.ts +2 -0
- package/dist/tests/units/services/runReviewRecovery.service.test.d.ts.map +1 -0
- package/dist/tests/units/services/runReviewRecovery.service.test.js +199 -0
- package/dist/tests/units/services/runReviewRecovery.service.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewRecovery.service.test.js","sourceRoot":"","sources":["../../../../src/tests/units/services/reviewRecovery.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,+DAA+D,CAAA;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;YACnD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;SAC3D,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;YACnD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YAC1D,MAAM,EAAE;gBACN,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,kBAAkB;aAC5B;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;YACnD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,EAAE;YAC3D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;SACjF,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;YACjD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runReviewRecovery.service.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/units/services/runReviewRecovery.service.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { runReviewRecovery } from '../../../modules/review-execution/services/reviewRecovery.service.js';
|
|
3
|
+
import { StubReviewContextGateway } from '../../../tests/stubs/reviewContextGateway.stub.js';
|
|
4
|
+
import { ReviewContextFactory } from '../../../tests/factories/reviewContext.factory.js';
|
|
5
|
+
const NOW = new Date('2026-05-25T21:00:00Z').getTime();
|
|
6
|
+
const ONE_HOUR_AGO = new Date('2026-05-25T20:00:00Z').toISOString();
|
|
7
|
+
const ONE_MINUTE_AGO = new Date('2026-05-25T20:59:00Z').toISOString();
|
|
8
|
+
const ONE_HOUR_AGO_TWO_MIN_HEARTBEAT = '2026-05-25T20:58:00Z';
|
|
9
|
+
function silentLogger() {
|
|
10
|
+
return { info: vi.fn(), warn: vi.fn(), error: vi.fn() };
|
|
11
|
+
}
|
|
12
|
+
const EMPTY_SUMMARY = {
|
|
13
|
+
scanned: 0,
|
|
14
|
+
recovered: 0,
|
|
15
|
+
partial: 0,
|
|
16
|
+
backfilled: 0,
|
|
17
|
+
skipped: 0,
|
|
18
|
+
failed: 0,
|
|
19
|
+
};
|
|
20
|
+
describe('runReviewRecovery', () => {
|
|
21
|
+
it('returns zero counters when there are no contexts on disk', async () => {
|
|
22
|
+
const gateway = new StubReviewContextGateway();
|
|
23
|
+
const summary = await runReviewRecovery({
|
|
24
|
+
repositories: [{ localPath: '/repo' }],
|
|
25
|
+
reviewContextGateway: gateway,
|
|
26
|
+
executeActions: vi.fn(),
|
|
27
|
+
now: () => NOW,
|
|
28
|
+
logger: silentLogger(),
|
|
29
|
+
});
|
|
30
|
+
expect(summary).toEqual(EMPTY_SUMMARY);
|
|
31
|
+
});
|
|
32
|
+
it('skips contexts that do not match the predicate (no actions queued)', async () => {
|
|
33
|
+
const gateway = new StubReviewContextGateway();
|
|
34
|
+
gateway.setContext('github-owner/repo-1', ReviewContextFactory.create({
|
|
35
|
+
mergeRequestId: 'github-owner/repo-1',
|
|
36
|
+
createdAt: ONE_MINUTE_AGO,
|
|
37
|
+
progress: { phase: 'completed', currentStep: null },
|
|
38
|
+
actions: [],
|
|
39
|
+
}));
|
|
40
|
+
const executeActions = vi.fn();
|
|
41
|
+
const summary = await runReviewRecovery({
|
|
42
|
+
repositories: [{ localPath: '/repo' }],
|
|
43
|
+
reviewContextGateway: gateway,
|
|
44
|
+
executeActions,
|
|
45
|
+
now: () => NOW,
|
|
46
|
+
logger: silentLogger(),
|
|
47
|
+
});
|
|
48
|
+
expect(summary.skipped).toBe(1);
|
|
49
|
+
expect(summary.recovered).toBe(0);
|
|
50
|
+
expect(executeActions).not.toHaveBeenCalled();
|
|
51
|
+
});
|
|
52
|
+
it('backfills (no post) stale contexts older than the grace window', async () => {
|
|
53
|
+
const gateway = new StubReviewContextGateway();
|
|
54
|
+
gateway.setContext('github-owner/repo-1', ReviewContextFactory.create({
|
|
55
|
+
mergeRequestId: 'github-owner/repo-1',
|
|
56
|
+
createdAt: ONE_HOUR_AGO,
|
|
57
|
+
progress: { phase: 'completed', currentStep: null },
|
|
58
|
+
actions: [{ type: 'POST_COMMENT', body: 'historical' }],
|
|
59
|
+
}));
|
|
60
|
+
const executeActions = vi.fn();
|
|
61
|
+
const summary = await runReviewRecovery({
|
|
62
|
+
repositories: [{ localPath: '/repo' }],
|
|
63
|
+
reviewContextGateway: gateway,
|
|
64
|
+
executeActions,
|
|
65
|
+
now: () => NOW,
|
|
66
|
+
logger: silentLogger(),
|
|
67
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
68
|
+
});
|
|
69
|
+
expect(summary.backfilled).toBe(1);
|
|
70
|
+
expect(summary.recovered).toBe(0);
|
|
71
|
+
expect(executeActions).not.toHaveBeenCalled();
|
|
72
|
+
const result = gateway.read('/repo', 'github-owner/repo-1')?.result;
|
|
73
|
+
expect(result?.kind).toBe('backfilled');
|
|
74
|
+
if (result?.kind === 'backfilled') {
|
|
75
|
+
expect(result.reason).toBe('stale-on-boot');
|
|
76
|
+
expect(result.backfilledAt).toBeDefined();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
it('measures grace window from progress.updatedAt, not createdAt (long-running reviews)', async () => {
|
|
80
|
+
const gateway = new StubReviewContextGateway();
|
|
81
|
+
gateway.setContext('github-owner/repo-long', ReviewContextFactory.create({
|
|
82
|
+
mergeRequestId: 'github-owner/repo-long',
|
|
83
|
+
createdAt: ONE_HOUR_AGO, // started > grace window ago
|
|
84
|
+
progress: {
|
|
85
|
+
phase: 'completed',
|
|
86
|
+
currentStep: null,
|
|
87
|
+
updatedAt: ONE_HOUR_AGO_TWO_MIN_HEARTBEAT, // but kept heartbeating 2 min ago
|
|
88
|
+
},
|
|
89
|
+
actions: [{ type: 'POST_COMMENT', body: 'long but fresh' }],
|
|
90
|
+
}));
|
|
91
|
+
const executeActions = vi.fn().mockResolvedValue({ posted: 1, failed: 0 });
|
|
92
|
+
const summary = await runReviewRecovery({
|
|
93
|
+
repositories: [{ localPath: '/repo' }],
|
|
94
|
+
reviewContextGateway: gateway,
|
|
95
|
+
executeActions,
|
|
96
|
+
now: () => NOW,
|
|
97
|
+
logger: silentLogger(),
|
|
98
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
99
|
+
});
|
|
100
|
+
expect(summary.recovered).toBe(1);
|
|
101
|
+
expect(summary.backfilled).toBe(0);
|
|
102
|
+
expect(executeActions).toHaveBeenCalledOnce();
|
|
103
|
+
});
|
|
104
|
+
it('recovers contexts inside the grace window by calling executeActions then finalizing', async () => {
|
|
105
|
+
const gateway = new StubReviewContextGateway();
|
|
106
|
+
gateway.setContext('github-owner/repo-2', ReviewContextFactory.create({
|
|
107
|
+
mergeRequestId: 'github-owner/repo-2',
|
|
108
|
+
createdAt: ONE_MINUTE_AGO,
|
|
109
|
+
progress: { phase: 'completed', currentStep: null },
|
|
110
|
+
actions: [{ type: 'POST_COMMENT', body: 'fresh' }],
|
|
111
|
+
}));
|
|
112
|
+
const executeActions = vi.fn().mockResolvedValue({ posted: 1, failed: 0 });
|
|
113
|
+
const summary = await runReviewRecovery({
|
|
114
|
+
repositories: [{ localPath: '/repo' }],
|
|
115
|
+
reviewContextGateway: gateway,
|
|
116
|
+
executeActions,
|
|
117
|
+
now: () => NOW,
|
|
118
|
+
logger: silentLogger(),
|
|
119
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
120
|
+
});
|
|
121
|
+
expect(summary.recovered).toBe(1);
|
|
122
|
+
expect(summary.partial).toBe(0);
|
|
123
|
+
expect(summary.backfilled).toBe(0);
|
|
124
|
+
expect(executeActions).toHaveBeenCalledTimes(1);
|
|
125
|
+
const result = gateway.read('/repo', 'github-owner/repo-2')?.result;
|
|
126
|
+
expect(result?.kind).toBe('backfilled');
|
|
127
|
+
if (result?.kind === 'backfilled') {
|
|
128
|
+
expect(result.reason).toBe('recovered-after-restart');
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
it('counts partial when some posts succeed and some fail, still finalizing to avoid double-post', async () => {
|
|
132
|
+
const gateway = new StubReviewContextGateway();
|
|
133
|
+
gateway.setContext('github-owner/repo-partial', ReviewContextFactory.create({
|
|
134
|
+
mergeRequestId: 'github-owner/repo-partial',
|
|
135
|
+
createdAt: ONE_MINUTE_AGO,
|
|
136
|
+
progress: { phase: 'completed', currentStep: null },
|
|
137
|
+
actions: [
|
|
138
|
+
{ type: 'POST_INLINE_COMMENT', filePath: 'a.ts', line: 1, body: 'a' },
|
|
139
|
+
{ type: 'POST_INLINE_COMMENT', filePath: 'b.ts', line: 1, body: 'b' },
|
|
140
|
+
],
|
|
141
|
+
}));
|
|
142
|
+
const executeActions = vi.fn().mockResolvedValue({ posted: 1, failed: 1 });
|
|
143
|
+
const summary = await runReviewRecovery({
|
|
144
|
+
repositories: [{ localPath: '/repo' }],
|
|
145
|
+
reviewContextGateway: gateway,
|
|
146
|
+
executeActions,
|
|
147
|
+
now: () => NOW,
|
|
148
|
+
logger: silentLogger(),
|
|
149
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
150
|
+
});
|
|
151
|
+
expect(summary.partial).toBe(1);
|
|
152
|
+
expect(summary.recovered).toBe(0);
|
|
153
|
+
expect(summary.failed).toBe(0);
|
|
154
|
+
expect(gateway.read('/repo', 'github-owner/repo-partial')?.result?.kind).toBe('backfilled');
|
|
155
|
+
});
|
|
156
|
+
it('leaves the context unfinalized when zero posts went through (safe to retry next boot)', async () => {
|
|
157
|
+
const gateway = new StubReviewContextGateway();
|
|
158
|
+
gateway.setContext('github-owner/repo-zero', ReviewContextFactory.create({
|
|
159
|
+
mergeRequestId: 'github-owner/repo-zero',
|
|
160
|
+
createdAt: ONE_MINUTE_AGO,
|
|
161
|
+
progress: { phase: 'completed', currentStep: null },
|
|
162
|
+
actions: [{ type: 'POST_COMMENT', body: 'unposted' }],
|
|
163
|
+
}));
|
|
164
|
+
const executeActions = vi.fn().mockResolvedValue({ posted: 0, failed: 1 });
|
|
165
|
+
const summary = await runReviewRecovery({
|
|
166
|
+
repositories: [{ localPath: '/repo' }],
|
|
167
|
+
reviewContextGateway: gateway,
|
|
168
|
+
executeActions,
|
|
169
|
+
now: () => NOW,
|
|
170
|
+
logger: silentLogger(),
|
|
171
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
172
|
+
});
|
|
173
|
+
expect(summary.failed).toBe(1);
|
|
174
|
+
expect(summary.recovered).toBe(0);
|
|
175
|
+
expect(gateway.read('/repo', 'github-owner/repo-zero')?.result).toBeUndefined();
|
|
176
|
+
});
|
|
177
|
+
it('counts a failure when executeActions throws and leaves result unset', async () => {
|
|
178
|
+
const gateway = new StubReviewContextGateway();
|
|
179
|
+
gateway.setContext('github-owner/repo-3', ReviewContextFactory.create({
|
|
180
|
+
mergeRequestId: 'github-owner/repo-3',
|
|
181
|
+
createdAt: ONE_MINUTE_AGO,
|
|
182
|
+
progress: { phase: 'completed', currentStep: null },
|
|
183
|
+
actions: [{ type: 'POST_COMMENT', body: 'flaky' }],
|
|
184
|
+
}));
|
|
185
|
+
const executeActions = vi.fn().mockRejectedValue(new Error('gh api down'));
|
|
186
|
+
const summary = await runReviewRecovery({
|
|
187
|
+
repositories: [{ localPath: '/repo' }],
|
|
188
|
+
reviewContextGateway: gateway,
|
|
189
|
+
executeActions,
|
|
190
|
+
now: () => NOW,
|
|
191
|
+
logger: silentLogger(),
|
|
192
|
+
graceWindowMs: 30 * 60 * 1000,
|
|
193
|
+
});
|
|
194
|
+
expect(summary.failed).toBe(1);
|
|
195
|
+
expect(summary.recovered).toBe(0);
|
|
196
|
+
expect(gateway.read('/repo', 'github-owner/repo-3')?.result).toBeUndefined();
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
//# sourceMappingURL=runReviewRecovery.service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runReviewRecovery.service.test.js","sourceRoot":"","sources":["../../../../src/tests/units/services/runReviewRecovery.service.test.ts"],"names":[],"mappings":"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"}
|