@pennyfarthing/core 7.4.0 → 7.5.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/dist/cli/utils/files.d.ts +0 -1
- package/dist/cli/utils/files.js +73 -56
- package/dist/cli/utils/manifest.d.ts +0 -1
- package/dist/cli/utils/manifest.js +48 -45
- package/dist/cli/utils/version.d.ts +0 -1
- package/dist/cli/utils/version.js +38 -32
- package/dist/index.d.ts +0 -1
- package/dist/index.js +39 -11
- package/dist/permissions/index.d.ts +0 -1
- package/dist/permissions/index.js +7 -4
- package/dist/permissions/permission-schema.d.ts +0 -1
- package/dist/permissions/permission-schema.js +13 -9
- package/dist/scripts/job-fair-aggregator.d.ts +0 -1
- package/dist/scripts/job-fair-aggregator.js +484 -341
- package/dist/workflow/index.d.ts +0 -1
- package/dist/workflow/index.js +12 -5
- package/dist/workflow/workflow-loader.d.ts +0 -1
- package/dist/workflow/workflow-loader.js +40 -34
- package/dist/workflow/workflow-permissions.d.ts +0 -1
- package/dist/workflow/workflow-permissions.js +14 -8
- package/dist/workflow/workflow-router.d.ts +0 -1
- package/dist/workflow/workflow-router.js +70 -51
- package/dist/workflow/workflow-schema.d.ts +0 -1
- package/dist/workflow/workflow-schema.js +62 -59
- package/package.json +1 -1
- package/dist/bmad/context-reader.d.ts +0 -71
- package/dist/bmad/context-reader.d.ts.map +0 -1
- package/dist/bmad/context-reader.js +0 -369
- package/dist/bmad/context-reader.js.map +0 -1
- package/dist/bmad/context-reader.test.d.ts +0 -71
- package/dist/bmad/context-reader.test.d.ts.map +0 -1
- package/dist/bmad/context-reader.test.js +0 -878
- package/dist/bmad/context-reader.test.js.map +0 -1
- package/dist/bmad/epics-parser.d.ts +0 -61
- package/dist/bmad/epics-parser.d.ts.map +0 -1
- package/dist/bmad/epics-parser.js +0 -331
- package/dist/bmad/epics-parser.js.map +0 -1
- package/dist/bmad/epics-parser.test.d.ts +0 -7
- package/dist/bmad/epics-parser.test.d.ts.map +0 -1
- package/dist/bmad/epics-parser.test.js +0 -449
- package/dist/bmad/epics-parser.test.js.map +0 -1
- package/dist/bmad/index.d.ts +0 -11
- package/dist/bmad/index.d.ts.map +0 -1
- package/dist/bmad/index.js +0 -24
- package/dist/bmad/index.js.map +0 -1
- package/dist/bmad/status-sync.d.ts +0 -173
- package/dist/bmad/status-sync.d.ts.map +0 -1
- package/dist/bmad/status-sync.js +0 -463
- package/dist/bmad/status-sync.js.map +0 -1
- package/dist/bmad/status-sync.test.d.ts +0 -7
- package/dist/bmad/status-sync.test.d.ts.map +0 -1
- package/dist/bmad/status-sync.test.js +0 -702
- package/dist/bmad/status-sync.test.js.map +0 -1
- package/dist/bmad/story-exporter.d.ts +0 -55
- package/dist/bmad/story-exporter.d.ts.map +0 -1
- package/dist/bmad/story-exporter.js +0 -170
- package/dist/bmad/story-exporter.js.map +0 -1
- package/dist/bmad/story-exporter.test.d.ts +0 -51
- package/dist/bmad/story-exporter.test.d.ts.map +0 -1
- package/dist/bmad/story-exporter.test.js +0 -603
- package/dist/bmad/story-exporter.test.js.map +0 -1
- package/dist/bmad/story-parser.d.ts +0 -44
- package/dist/bmad/story-parser.d.ts.map +0 -1
- package/dist/bmad/story-parser.js +0 -307
- package/dist/bmad/story-parser.js.map +0 -1
- package/dist/bmad/story-parser.test.d.ts +0 -44
- package/dist/bmad/story-parser.test.d.ts.map +0 -1
- package/dist/bmad/story-parser.test.js +0 -693
- package/dist/bmad/story-parser.test.js.map +0 -1
- package/dist/cli/commands/command.d.ts +0 -28
- package/dist/cli/commands/command.d.ts.map +0 -1
- package/dist/cli/commands/command.js +0 -399
- package/dist/cli/commands/command.js.map +0 -1
- package/dist/cli/commands/cyclist.d.ts +0 -46
- package/dist/cli/commands/cyclist.d.ts.map +0 -1
- package/dist/cli/commands/cyclist.js +0 -196
- package/dist/cli/commands/cyclist.js.map +0 -1
- package/dist/cli/commands/cyclist.test.d.ts +0 -13
- package/dist/cli/commands/cyclist.test.d.ts.map +0 -1
- package/dist/cli/commands/cyclist.test.js +0 -245
- package/dist/cli/commands/cyclist.test.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -9
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -652
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -524
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -28
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -416
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/theme.d.ts +0 -21
- package/dist/cli/commands/theme.d.ts.map +0 -1
- package/dist/cli/commands/theme.js +0 -201
- package/dist/cli/commands/theme.js.map +0 -1
- package/dist/cli/commands/uninstall.d.ts +0 -8
- package/dist/cli/commands/uninstall.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.js +0 -237
- package/dist/cli/commands/uninstall.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -9
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -418
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/commands/version.d.ts +0 -2
- package/dist/cli/commands/version.d.ts.map +0 -1
- package/dist/cli/commands/version.js +0 -28
- package/dist/cli/commands/version.js.map +0 -1
- package/dist/cli/customization.test.d.ts +0 -12
- package/dist/cli/customization.test.d.ts.map +0 -1
- package/dist/cli/customization.test.js +0 -84
- package/dist/cli/customization.test.js.map +0 -1
- package/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/dist/cli/cyclist-migration.test.js +0 -225
- package/dist/cli/cyclist-migration.test.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -174
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/ocean-profiles.test.d.ts +0 -13
- package/dist/cli/ocean-profiles.test.d.ts.map +0 -1
- package/dist/cli/ocean-profiles.test.js +0 -134
- package/dist/cli/ocean-profiles.test.js.map +0 -1
- package/dist/cli/theme-maker.test.d.ts +0 -11
- package/dist/cli/theme-maker.test.d.ts.map +0 -1
- package/dist/cli/theme-maker.test.js +0 -356
- package/dist/cli/theme-maker.test.js.map +0 -1
- package/dist/cli/utils/constants.d.ts +0 -66
- package/dist/cli/utils/constants.d.ts.map +0 -1
- package/dist/cli/utils/constants.js +0 -54
- package/dist/cli/utils/constants.js.map +0 -1
- package/dist/cli/utils/files.d.ts.map +0 -1
- package/dist/cli/utils/files.js.map +0 -1
- package/dist/cli/utils/logger.d.ts +0 -26
- package/dist/cli/utils/logger.d.ts.map +0 -1
- package/dist/cli/utils/logger.js +0 -88
- package/dist/cli/utils/logger.js.map +0 -1
- package/dist/cli/utils/manifest.d.ts.map +0 -1
- package/dist/cli/utils/manifest.js.map +0 -1
- package/dist/cli/utils/node-modules.d.ts +0 -6
- package/dist/cli/utils/node-modules.d.ts.map +0 -1
- package/dist/cli/utils/node-modules.js +0 -31
- package/dist/cli/utils/node-modules.js.map +0 -1
- package/dist/cli/utils/prompts.d.ts +0 -34
- package/dist/cli/utils/prompts.d.ts.map +0 -1
- package/dist/cli/utils/prompts.js +0 -93
- package/dist/cli/utils/prompts.js.map +0 -1
- package/dist/cli/utils/symlinks.d.ts +0 -29
- package/dist/cli/utils/symlinks.d.ts.map +0 -1
- package/dist/cli/utils/symlinks.js +0 -181
- package/dist/cli/utils/symlinks.js.map +0 -1
- package/dist/cli/utils/themes.d.ts +0 -101
- package/dist/cli/utils/themes.d.ts.map +0 -1
- package/dist/cli/utils/themes.js +0 -373
- package/dist/cli/utils/themes.js.map +0 -1
- package/dist/cli/utils/themes.test.d.ts +0 -12
- package/dist/cli/utils/themes.test.d.ts.map +0 -1
- package/dist/cli/utils/themes.test.js +0 -147
- package/dist/cli/utils/themes.test.js.map +0 -1
- package/dist/cli/utils/version.d.ts.map +0 -1
- package/dist/cli/utils/version.js.map +0 -1
- package/dist/cli/workspace.test.d.ts +0 -8
- package/dist/cli/workspace.test.d.ts.map +0 -1
- package/dist/cli/workspace.test.js +0 -151
- package/dist/cli/workspace.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jira/jira-epic-creation.d.ts +0 -109
- package/dist/jira/jira-epic-creation.d.ts.map +0 -1
- package/dist/jira/jira-epic-creation.js +0 -253
- package/dist/jira/jira-epic-creation.js.map +0 -1
- package/dist/jira/jira-epic-creation.test.d.ts +0 -16
- package/dist/jira/jira-epic-creation.test.d.ts.map +0 -1
- package/dist/jira/jira-epic-creation.test.js +0 -387
- package/dist/jira/jira-epic-creation.test.js.map +0 -1
- package/dist/jira/jira-sprint-sync.d.ts +0 -247
- package/dist/jira/jira-sprint-sync.d.ts.map +0 -1
- package/dist/jira/jira-sprint-sync.js +0 -670
- package/dist/jira/jira-sprint-sync.js.map +0 -1
- package/dist/jira/jira-sprint-sync.test.d.ts +0 -16
- package/dist/jira/jira-sprint-sync.test.d.ts.map +0 -1
- package/dist/jira/jira-sprint-sync.test.js +0 -845
- package/dist/jira/jira-sprint-sync.test.js.map +0 -1
- package/dist/permissions/index.d.ts.map +0 -1
- package/dist/permissions/index.js.map +0 -1
- package/dist/permissions/permission-schema.d.ts.map +0 -1
- package/dist/permissions/permission-schema.js.map +0 -1
- package/dist/permissions/permission-schema.test.d.ts +0 -40
- package/dist/permissions/permission-schema.test.d.ts.map +0 -1
- package/dist/permissions/permission-schema.test.js +0 -367
- package/dist/permissions/permission-schema.test.js.map +0 -1
- package/dist/scripts/add-ocean-profiles.d.ts +0 -9
- package/dist/scripts/add-ocean-profiles.d.ts.map +0 -1
- package/dist/scripts/add-ocean-profiles.js +0 -695
- package/dist/scripts/add-ocean-profiles.js.map +0 -1
- package/dist/scripts/benchmark-integration.d.ts +0 -182
- package/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/dist/scripts/benchmark-integration.js +0 -691
- package/dist/scripts/benchmark-integration.js.map +0 -1
- package/dist/scripts/benchmark-integration.test.d.ts +0 -13
- package/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
- package/dist/scripts/benchmark-integration.test.js +0 -680
- package/dist/scripts/benchmark-integration.test.js.map +0 -1
- package/dist/scripts/debugging-scenarios.test.d.ts +0 -18
- package/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
- package/dist/scripts/debugging-scenarios.test.js +0 -317
- package/dist/scripts/debugging-scenarios.test.js.map +0 -1
- package/dist/scripts/generate-all-spiders.d.ts +0 -10
- package/dist/scripts/generate-all-spiders.d.ts.map +0 -1
- package/dist/scripts/generate-all-spiders.js +0 -306
- package/dist/scripts/generate-all-spiders.js.map +0 -1
- package/dist/scripts/generate-report.d.ts +0 -65
- package/dist/scripts/generate-report.d.ts.map +0 -1
- package/dist/scripts/generate-report.js +0 -378
- package/dist/scripts/generate-report.js.map +0 -1
- package/dist/scripts/generate-report.test.d.ts +0 -13
- package/dist/scripts/generate-report.test.d.ts.map +0 -1
- package/dist/scripts/generate-report.test.js +0 -363
- package/dist/scripts/generate-report.test.js.map +0 -1
- package/dist/scripts/generate-spider-report.d.ts +0 -65
- package/dist/scripts/generate-spider-report.d.ts.map +0 -1
- package/dist/scripts/generate-spider-report.js +0 -366
- package/dist/scripts/generate-spider-report.js.map +0 -1
- package/dist/scripts/generate-spider-report.test.d.ts +0 -13
- package/dist/scripts/generate-spider-report.test.d.ts.map +0 -1
- package/dist/scripts/generate-spider-report.test.js +0 -367
- package/dist/scripts/generate-spider-report.test.js.map +0 -1
- package/dist/scripts/generate-spider.d.ts +0 -47
- package/dist/scripts/generate-spider.d.ts.map +0 -1
- package/dist/scripts/generate-spider.js +0 -338
- package/dist/scripts/generate-spider.js.map +0 -1
- package/dist/scripts/generate-spider.test.d.ts +0 -14
- package/dist/scripts/generate-spider.test.d.ts.map +0 -1
- package/dist/scripts/generate-spider.test.js +0 -271
- package/dist/scripts/generate-spider.test.js.map +0 -1
- package/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
- package/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
- package/dist/scripts/job-fair-aggregator.test.js +0 -616
- package/dist/scripts/job-fair-aggregator.test.js.map +0 -1
- package/dist/scripts/run-ci.test.d.ts +0 -20
- package/dist/scripts/run-ci.test.d.ts.map +0 -1
- package/dist/scripts/run-ci.test.js +0 -127
- package/dist/scripts/run-ci.test.js.map +0 -1
- package/dist/scripts/theme-detail.test.d.ts +0 -10
- package/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/dist/scripts/theme-detail.test.js +0 -199
- package/dist/scripts/theme-detail.test.js.map +0 -1
- package/dist/scripts/validate-ocean-profiles.d.ts +0 -9
- package/dist/scripts/validate-ocean-profiles.d.ts.map +0 -1
- package/dist/scripts/validate-ocean-profiles.js +0 -130
- package/dist/scripts/validate-ocean-profiles.js.map +0 -1
- package/dist/workflow/gate-handler.d.ts +0 -94
- package/dist/workflow/gate-handler.d.ts.map +0 -1
- package/dist/workflow/gate-handler.js +0 -189
- package/dist/workflow/gate-handler.js.map +0 -1
- package/dist/workflow/gate-handler.test.d.ts +0 -14
- package/dist/workflow/gate-handler.test.d.ts.map +0 -1
- package/dist/workflow/gate-handler.test.js +0 -543
- package/dist/workflow/gate-handler.test.js.map +0 -1
- package/dist/workflow/generic-handoff.d.ts +0 -281
- package/dist/workflow/generic-handoff.d.ts.map +0 -1
- package/dist/workflow/generic-handoff.js +0 -411
- package/dist/workflow/generic-handoff.js.map +0 -1
- package/dist/workflow/generic-handoff.test.d.ts +0 -21
- package/dist/workflow/generic-handoff.test.d.ts.map +0 -1
- package/dist/workflow/generic-handoff.test.js +0 -499
- package/dist/workflow/generic-handoff.test.js.map +0 -1
- package/dist/workflow/generic-sm-finish.d.ts +0 -89
- package/dist/workflow/generic-sm-finish.d.ts.map +0 -1
- package/dist/workflow/generic-sm-finish.js +0 -157
- package/dist/workflow/generic-sm-finish.js.map +0 -1
- package/dist/workflow/generic-sm-setup.d.ts +0 -138
- package/dist/workflow/generic-sm-setup.d.ts.map +0 -1
- package/dist/workflow/generic-sm-setup.js +0 -382
- package/dist/workflow/generic-sm-setup.js.map +0 -1
- package/dist/workflow/index.d.ts.map +0 -1
- package/dist/workflow/index.js.map +0 -1
- package/dist/workflow/session-state.d.ts +0 -92
- package/dist/workflow/session-state.d.ts.map +0 -1
- package/dist/workflow/session-state.js +0 -198
- package/dist/workflow/session-state.js.map +0 -1
- package/dist/workflow/session-state.test.d.ts +0 -8
- package/dist/workflow/session-state.test.d.ts.map +0 -1
- package/dist/workflow/session-state.test.js +0 -551
- package/dist/workflow/session-state.test.js.map +0 -1
- package/dist/workflow/sm-subagents.test.d.ts +0 -23
- package/dist/workflow/sm-subagents.test.d.ts.map +0 -1
- package/dist/workflow/sm-subagents.test.js +0 -727
- package/dist/workflow/sm-subagents.test.js.map +0 -1
- package/dist/workflow/step-parser.d.ts +0 -45
- package/dist/workflow/step-parser.d.ts.map +0 -1
- package/dist/workflow/step-parser.js +0 -147
- package/dist/workflow/step-parser.js.map +0 -1
- package/dist/workflow/step-parser.test.d.ts +0 -14
- package/dist/workflow/step-parser.test.d.ts.map +0 -1
- package/dist/workflow/step-parser.test.js +0 -470
- package/dist/workflow/step-parser.test.js.map +0 -1
- package/dist/workflow/story-workflow-routing.test.d.ts +0 -17
- package/dist/workflow/story-workflow-routing.test.d.ts.map +0 -1
- package/dist/workflow/story-workflow-routing.test.js +0 -559
- package/dist/workflow/story-workflow-routing.test.js.map +0 -1
- package/dist/workflow/test-cache.d.ts +0 -131
- package/dist/workflow/test-cache.d.ts.map +0 -1
- package/dist/workflow/test-cache.js +0 -226
- package/dist/workflow/test-cache.js.map +0 -1
- package/dist/workflow/test-cache.test.d.ts +0 -17
- package/dist/workflow/test-cache.test.d.ts.map +0 -1
- package/dist/workflow/test-cache.test.js +0 -438
- package/dist/workflow/test-cache.test.js.map +0 -1
- package/dist/workflow/trimodal.d.ts +0 -86
- package/dist/workflow/trimodal.d.ts.map +0 -1
- package/dist/workflow/trimodal.js +0 -118
- package/dist/workflow/trimodal.js.map +0 -1
- package/dist/workflow/trimodal.test.d.ts +0 -11
- package/dist/workflow/trimodal.test.d.ts.map +0 -1
- package/dist/workflow/trimodal.test.js +0 -395
- package/dist/workflow/trimodal.test.js.map +0 -1
- package/dist/workflow/variable-resolver.d.ts +0 -67
- package/dist/workflow/variable-resolver.d.ts.map +0 -1
- package/dist/workflow/variable-resolver.js +0 -156
- package/dist/workflow/variable-resolver.js.map +0 -1
- package/dist/workflow/variable-resolver.test.d.ts +0 -14
- package/dist/workflow/variable-resolver.test.d.ts.map +0 -1
- package/dist/workflow/variable-resolver.test.js +0 -400
- package/dist/workflow/variable-resolver.test.js.map +0 -1
- package/dist/workflow/workflow-executor.d.ts +0 -163
- package/dist/workflow/workflow-executor.d.ts.map +0 -1
- package/dist/workflow/workflow-executor.js +0 -197
- package/dist/workflow/workflow-executor.js.map +0 -1
- package/dist/workflow/workflow-executor.test.d.ts +0 -8
- package/dist/workflow/workflow-executor.test.d.ts.map +0 -1
- package/dist/workflow/workflow-executor.test.js +0 -444
- package/dist/workflow/workflow-executor.test.js.map +0 -1
- package/dist/workflow/workflow-loader.d.ts.map +0 -1
- package/dist/workflow/workflow-loader.js.map +0 -1
- package/dist/workflow/workflow-loader.test.d.ts +0 -15
- package/dist/workflow/workflow-loader.test.d.ts.map +0 -1
- package/dist/workflow/workflow-loader.test.js +0 -354
- package/dist/workflow/workflow-loader.test.js.map +0 -1
- package/dist/workflow/workflow-migration.test.d.ts +0 -17
- package/dist/workflow/workflow-migration.test.d.ts.map +0 -1
- package/dist/workflow/workflow-migration.test.js +0 -371
- package/dist/workflow/workflow-migration.test.js.map +0 -1
- package/dist/workflow/workflow-permissions.d.ts.map +0 -1
- package/dist/workflow/workflow-permissions.js.map +0 -1
- package/dist/workflow/workflow-permissions.test.d.ts +0 -15
- package/dist/workflow/workflow-permissions.test.d.ts.map +0 -1
- package/dist/workflow/workflow-permissions.test.js +0 -301
- package/dist/workflow/workflow-permissions.test.js.map +0 -1
- package/dist/workflow/workflow-router.d.ts.map +0 -1
- package/dist/workflow/workflow-router.js.map +0 -1
- package/dist/workflow/workflow-router.test.d.ts +0 -20
- package/dist/workflow/workflow-router.test.d.ts.map +0 -1
- package/dist/workflow/workflow-router.test.js +0 -607
- package/dist/workflow/workflow-router.test.js.map +0 -1
- package/dist/workflow/workflow-schema.d.ts.map +0 -1
- package/dist/workflow/workflow-schema.js.map +0 -1
- package/dist/workflow/workflow-schema.test.d.ts +0 -45
- package/dist/workflow/workflow-schema.test.d.ts.map +0 -1
- package/dist/workflow/workflow-schema.test.js +0 -512
- package/dist/workflow/workflow-schema.test.js.map +0 -1
- package/dist/workflow/workflow-stepped-schema.test.d.ts +0 -18
- package/dist/workflow/workflow-stepped-schema.test.d.ts.map +0 -1
- package/dist/workflow/workflow-stepped-schema.test.js +0 -608
- package/dist/workflow/workflow-stepped-schema.test.js.map +0 -1
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for Story 31-4: Migrate TDD Flow to Workflow Definition
|
|
3
|
-
*
|
|
4
|
-
* These tests verify that the workflow YAML files correctly capture
|
|
5
|
-
* the hardcoded TDD flow from the SM agent. This is a migration verification
|
|
6
|
-
* test suite - it ensures the YAML definitions match expected behavior.
|
|
7
|
-
*
|
|
8
|
-
* Acceptance Criteria:
|
|
9
|
-
* - AC1: tdd.yaml workflow exists in pennyfarthing-dist/workflows/
|
|
10
|
-
* - AC2: Defines SM → TEA → Dev → Reviewer → SM phases
|
|
11
|
-
* - AC3: Scale routing (1-2 pts skip TEA) preserved via trivial.yaml
|
|
12
|
-
* - AC4: Existing /new-work behavior unchanged (regression tested)
|
|
13
|
-
*
|
|
14
|
-
* Run with: npm test
|
|
15
|
-
*/
|
|
16
|
-
import { describe, it } from 'node:test';
|
|
17
|
-
import assert from 'node:assert';
|
|
18
|
-
import { dirname, join } from 'node:path';
|
|
19
|
-
import { fileURLToPath } from 'node:url';
|
|
20
|
-
import { existsSync } from 'node:fs';
|
|
21
|
-
import { loadWorkflowFile, loadWorkflowsFromDir } from './workflow-loader.js';
|
|
22
|
-
import { routeStoryToWorkflow } from './workflow-router.js';
|
|
23
|
-
// =============================================================================
|
|
24
|
-
// Test Setup - Find workflow directory
|
|
25
|
-
// =============================================================================
|
|
26
|
-
function findMonorepoRoot(startDir) {
|
|
27
|
-
let dir = startDir;
|
|
28
|
-
for (let i = 0; i < 10; i++) {
|
|
29
|
-
if (existsSync(join(dir, 'pennyfarthing-dist'))) {
|
|
30
|
-
return dir;
|
|
31
|
-
}
|
|
32
|
-
const parent = dirname(dir);
|
|
33
|
-
if (parent === dir)
|
|
34
|
-
break;
|
|
35
|
-
dir = parent;
|
|
36
|
-
}
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
40
|
-
const monorepoRoot = findMonorepoRoot(__dirname);
|
|
41
|
-
const workflowsDir = monorepoRoot ? join(monorepoRoot, 'pennyfarthing-dist', 'workflows') : null;
|
|
42
|
-
// =============================================================================
|
|
43
|
-
// AC1: tdd.yaml workflow exists in pennyfarthing-dist/workflows/
|
|
44
|
-
// =============================================================================
|
|
45
|
-
describe('AC1: tdd.yaml workflow exists', () => {
|
|
46
|
-
it('should find pennyfarthing-dist/workflows directory', () => {
|
|
47
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
48
|
-
assert.ok(existsSync(workflowsDir), `Workflows directory should exist: ${workflowsDir}`);
|
|
49
|
-
});
|
|
50
|
-
it('should load tdd.yaml from pennyfarthing-dist/workflows/', () => {
|
|
51
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
52
|
-
const tddPath = join(workflowsDir, 'tdd.yaml');
|
|
53
|
-
assert.ok(existsSync(tddPath), `tdd.yaml should exist at: ${tddPath}`);
|
|
54
|
-
const result = loadWorkflowFile(tddPath);
|
|
55
|
-
assert.ok(result.success, `tdd.yaml should load successfully: ${JSON.stringify(result.errors)}`);
|
|
56
|
-
assert.ok(result.workflow, 'Should have workflow object');
|
|
57
|
-
assert.strictEqual(result.workflow.name, 'tdd', 'Workflow name should be "tdd"');
|
|
58
|
-
});
|
|
59
|
-
it('should load trivial.yaml from pennyfarthing-dist/workflows/', () => {
|
|
60
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
61
|
-
const trivialPath = join(workflowsDir, 'trivial.yaml');
|
|
62
|
-
assert.ok(existsSync(trivialPath), `trivial.yaml should exist at: ${trivialPath}`);
|
|
63
|
-
const result = loadWorkflowFile(trivialPath);
|
|
64
|
-
assert.ok(result.success, `trivial.yaml should load successfully: ${JSON.stringify(result.errors)}`);
|
|
65
|
-
assert.ok(result.workflow, 'Should have workflow object');
|
|
66
|
-
assert.strictEqual(result.workflow.name, 'trivial', 'Workflow name should be "trivial"');
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
// =============================================================================
|
|
70
|
-
// AC2: Defines SM → TEA → Dev → Reviewer → SM phases
|
|
71
|
-
// =============================================================================
|
|
72
|
-
describe('AC2: TDD workflow defines correct phases', () => {
|
|
73
|
-
it('should have exactly 5 phases in tdd.yaml', () => {
|
|
74
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
75
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
76
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
77
|
-
assert.strictEqual(result.workflow.phases?.length, 5, 'TDD workflow should have 5 phases');
|
|
78
|
-
});
|
|
79
|
-
it('should define phases in order: setup(SM) → red(TEA) → green(Dev) → review(Reviewer) → finish(SM)', () => {
|
|
80
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
81
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
82
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
83
|
-
const phases = result.workflow.phases;
|
|
84
|
-
const expectedFlow = [
|
|
85
|
-
{ name: 'setup', agent: 'sm' },
|
|
86
|
-
{ name: 'red', agent: 'tea' },
|
|
87
|
-
{ name: 'green', agent: 'dev' },
|
|
88
|
-
{ name: 'review', agent: 'reviewer' },
|
|
89
|
-
{ name: 'finish', agent: 'sm' }
|
|
90
|
-
];
|
|
91
|
-
expectedFlow.forEach((expected, i) => {
|
|
92
|
-
assert.strictEqual(phases[i].name, expected.name, `Phase ${i} should be "${expected.name}"`);
|
|
93
|
-
assert.strictEqual(phases[i].agent, expected.agent, `Phase ${i} agent should be "${expected.agent}"`);
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
it('should have RED phase with tests_fail gate', () => {
|
|
97
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
98
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
99
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
100
|
-
const redPhase = result.workflow.phases?.find(p => p.name === 'red');
|
|
101
|
-
assert.ok(redPhase, 'Should have RED phase');
|
|
102
|
-
assert.ok(redPhase.gate, 'RED phase should have a gate');
|
|
103
|
-
assert.strictEqual(redPhase.gate.type, 'tests_fail', 'RED phase gate should be tests_fail');
|
|
104
|
-
});
|
|
105
|
-
it('should have GREEN phase with tests_pass gate', () => {
|
|
106
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
107
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
108
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
109
|
-
const greenPhase = result.workflow.phases?.find(p => p.name === 'green');
|
|
110
|
-
assert.ok(greenPhase, 'Should have GREEN phase');
|
|
111
|
-
assert.ok(greenPhase.gate, 'GREEN phase should have a gate');
|
|
112
|
-
assert.strictEqual(greenPhase.gate.type, 'tests_pass', 'GREEN phase gate should be tests_pass');
|
|
113
|
-
});
|
|
114
|
-
it('should have REVIEW phase with approval gate', () => {
|
|
115
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
116
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
117
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
118
|
-
const reviewPhase = result.workflow.phases?.find(p => p.name === 'review');
|
|
119
|
-
assert.ok(reviewPhase, 'Should have REVIEW phase');
|
|
120
|
-
assert.ok(reviewPhase.gate, 'REVIEW phase should have a gate');
|
|
121
|
-
assert.strictEqual(reviewPhase.gate.type, 'approval', 'REVIEW phase gate should be approval');
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
// =============================================================================
|
|
125
|
-
// AC3: Scale routing (1-2 pts skip TEA) preserved via trivial.yaml
|
|
126
|
-
// =============================================================================
|
|
127
|
-
describe('AC3: Scale-adaptive routing preserved', () => {
|
|
128
|
-
it('should route 1-point chore to trivial workflow (skips TEA)', () => {
|
|
129
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
130
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
131
|
-
assert.ok(workflows.length >= 2, 'Should have at least 2 workflows');
|
|
132
|
-
const story = {
|
|
133
|
-
id: 'test-1',
|
|
134
|
-
type: 'chore',
|
|
135
|
-
points: 1
|
|
136
|
-
};
|
|
137
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
138
|
-
assert.ok(result, 'Should route to a workflow');
|
|
139
|
-
assert.strictEqual(result.workflow.name, 'trivial', '1-pt chore should route to trivial');
|
|
140
|
-
});
|
|
141
|
-
it('should route 2-point fix to trivial workflow (skips TEA)', () => {
|
|
142
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
143
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
144
|
-
const story = {
|
|
145
|
-
id: 'test-2',
|
|
146
|
-
type: 'fix',
|
|
147
|
-
points: 2
|
|
148
|
-
};
|
|
149
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
150
|
-
assert.ok(result, 'Should route to a workflow');
|
|
151
|
-
assert.strictEqual(result.workflow.name, 'trivial', '2-pt fix should route to trivial');
|
|
152
|
-
});
|
|
153
|
-
it('should route 3-point feature to tdd workflow (includes TEA)', () => {
|
|
154
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
155
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
156
|
-
const story = {
|
|
157
|
-
id: 'test-3',
|
|
158
|
-
type: 'feature',
|
|
159
|
-
points: 3
|
|
160
|
-
};
|
|
161
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
162
|
-
assert.ok(result, 'Should route to a workflow');
|
|
163
|
-
assert.strictEqual(result.workflow.name, 'tdd', '3-pt feature should route to tdd');
|
|
164
|
-
});
|
|
165
|
-
it('should route 5-point feature to tdd workflow (includes TEA)', () => {
|
|
166
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
167
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
168
|
-
const story = {
|
|
169
|
-
id: 'test-5',
|
|
170
|
-
type: 'feature',
|
|
171
|
-
points: 5
|
|
172
|
-
};
|
|
173
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
174
|
-
assert.ok(result, 'Should route to a workflow');
|
|
175
|
-
assert.strictEqual(result.workflow.name, 'tdd', '5-pt feature should route to tdd');
|
|
176
|
-
});
|
|
177
|
-
it('should route 8-point feature to tdd workflow (complex story)', () => {
|
|
178
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
179
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
180
|
-
const story = {
|
|
181
|
-
id: 'test-8',
|
|
182
|
-
type: 'feature',
|
|
183
|
-
points: 8
|
|
184
|
-
};
|
|
185
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
186
|
-
assert.ok(result, 'Should route to a workflow');
|
|
187
|
-
assert.strictEqual(result.workflow.name, 'tdd', '8-pt feature should route to tdd');
|
|
188
|
-
});
|
|
189
|
-
it('trivial workflow should NOT include TEA phase', () => {
|
|
190
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
191
|
-
const result = loadWorkflowFile(join(workflowsDir, 'trivial.yaml'));
|
|
192
|
-
assert.ok(result.success && result.workflow, 'Should load trivial.yaml');
|
|
193
|
-
const agents = result.workflow.phases.map(p => p.agent);
|
|
194
|
-
assert.ok(!agents.includes('tea'), 'Trivial workflow should not include TEA agent');
|
|
195
|
-
});
|
|
196
|
-
it('trivial workflow should have 4 phases: SM → Dev → Reviewer → SM', () => {
|
|
197
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
198
|
-
const result = loadWorkflowFile(join(workflowsDir, 'trivial.yaml'));
|
|
199
|
-
assert.ok(result.success && result.workflow, 'Should load trivial.yaml');
|
|
200
|
-
assert.strictEqual(result.workflow.phases.length, 4, 'Trivial workflow should have 4 phases');
|
|
201
|
-
const expectedFlow = [
|
|
202
|
-
{ name: 'setup', agent: 'sm' },
|
|
203
|
-
{ name: 'implement', agent: 'dev' },
|
|
204
|
-
{ name: 'review', agent: 'reviewer' },
|
|
205
|
-
{ name: 'finish', agent: 'sm' }
|
|
206
|
-
];
|
|
207
|
-
expectedFlow.forEach((expected, i) => {
|
|
208
|
-
assert.strictEqual(result.workflow.phases[i].agent, expected.agent, `Phase ${i} agent should be "${expected.agent}"`);
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
// =============================================================================
|
|
213
|
-
// AC4: Existing /new-work behavior unchanged (regression tested)
|
|
214
|
-
// =============================================================================
|
|
215
|
-
describe('AC4: /new-work behavior regression tests', () => {
|
|
216
|
-
/**
|
|
217
|
-
* These tests verify the routing behavior matches the hardcoded logic in SM agent:
|
|
218
|
-
*
|
|
219
|
-
* From sm.md:
|
|
220
|
-
* | 1-2 pts (chore/fix) | Trivial | SM → Dev (skip TEA) |
|
|
221
|
-
* | 3-5 pts | Standard | SM → TEA → Dev |
|
|
222
|
-
* | 8+ pts | Complex | SM → TEA → Dev |
|
|
223
|
-
*/
|
|
224
|
-
it('feature type defaults to TDD workflow', () => {
|
|
225
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
226
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
227
|
-
const story = {
|
|
228
|
-
id: 'regression-1',
|
|
229
|
-
type: 'feature'
|
|
230
|
-
// No points specified - should still route to tdd
|
|
231
|
-
};
|
|
232
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
233
|
-
assert.ok(result, 'Should route to a workflow');
|
|
234
|
-
assert.strictEqual(result.workflow.name, 'tdd', 'feature type should default to tdd');
|
|
235
|
-
});
|
|
236
|
-
it('enhancement type routes to TDD workflow', () => {
|
|
237
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
238
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
239
|
-
const story = {
|
|
240
|
-
id: 'regression-2',
|
|
241
|
-
type: 'enhancement',
|
|
242
|
-
points: 5
|
|
243
|
-
};
|
|
244
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
245
|
-
assert.ok(result, 'Should route to a workflow');
|
|
246
|
-
assert.strictEqual(result.workflow.name, 'tdd', 'enhancement should route to tdd');
|
|
247
|
-
});
|
|
248
|
-
it('chore type with low points routes to trivial workflow', () => {
|
|
249
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
250
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
251
|
-
const story = {
|
|
252
|
-
id: 'regression-3',
|
|
253
|
-
type: 'chore',
|
|
254
|
-
points: 1
|
|
255
|
-
};
|
|
256
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
257
|
-
assert.ok(result, 'Should route to a workflow');
|
|
258
|
-
assert.strictEqual(result.workflow.name, 'trivial', 'chore with 1 pt should route to trivial');
|
|
259
|
-
});
|
|
260
|
-
it('fix type with 2 points routes to trivial workflow', () => {
|
|
261
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
262
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
263
|
-
const story = {
|
|
264
|
-
id: 'regression-4',
|
|
265
|
-
type: 'fix',
|
|
266
|
-
points: 2
|
|
267
|
-
};
|
|
268
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
269
|
-
assert.ok(result, 'Should route to a workflow');
|
|
270
|
-
assert.strictEqual(result.workflow.name, 'trivial', 'fix with 2 pts should route to trivial');
|
|
271
|
-
});
|
|
272
|
-
it('refactor type with 2 points routes to trivial workflow', () => {
|
|
273
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
274
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
275
|
-
const story = {
|
|
276
|
-
id: 'regression-5',
|
|
277
|
-
type: 'refactor',
|
|
278
|
-
points: 2
|
|
279
|
-
};
|
|
280
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
281
|
-
assert.ok(result, 'Should route to a workflow');
|
|
282
|
-
assert.strictEqual(result.workflow.name, 'trivial', 'refactor with 2 pts should route to trivial');
|
|
283
|
-
});
|
|
284
|
-
it('boundary: 2-point feature routes to tdd (type wins over points)', () => {
|
|
285
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
286
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
287
|
-
// This is a key regression test - features should use TDD even at low points
|
|
288
|
-
// because type takes priority in the current routing logic
|
|
289
|
-
const story = {
|
|
290
|
-
id: 'boundary-1',
|
|
291
|
-
type: 'feature',
|
|
292
|
-
points: 2
|
|
293
|
-
};
|
|
294
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
295
|
-
assert.ok(result, 'Should route to a workflow');
|
|
296
|
-
// Feature type matches tdd.yaml, and tdd has default: true
|
|
297
|
-
// The question is: does type match or default apply?
|
|
298
|
-
// According to priority: type match > points > default
|
|
299
|
-
// tdd.yaml has types: [feature, enhancement] AND points.min: 3
|
|
300
|
-
// So 2-pt feature shouldn't match tdd's triggers (needs min 3)
|
|
301
|
-
// But tdd has default: true, so it should fall back to tdd anyway
|
|
302
|
-
assert.strictEqual(result.workflow.name, 'tdd', '2-pt feature should route to tdd (default fallback)');
|
|
303
|
-
});
|
|
304
|
-
it('boundary: 3-point chore routes based on type not points', () => {
|
|
305
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
306
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
307
|
-
// 3-point chore: chore type matches trivial, but points exceed max: 2
|
|
308
|
-
// This tests AND logic - both type AND points must match
|
|
309
|
-
const story = {
|
|
310
|
-
id: 'boundary-2',
|
|
311
|
-
type: 'chore',
|
|
312
|
-
points: 3
|
|
313
|
-
};
|
|
314
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
315
|
-
assert.ok(result, 'Should route to a workflow');
|
|
316
|
-
// trivial.yaml has: types: [chore, fix, refactor], points.max: 2
|
|
317
|
-
// With AND logic, 3-pt chore exceeds max, so trivial doesn't match
|
|
318
|
-
// Falls back to tdd (default: true)
|
|
319
|
-
assert.strictEqual(result.workflow.name, 'tdd', '3-pt chore should fall back to tdd (exceeds trivial max)');
|
|
320
|
-
});
|
|
321
|
-
it('story with no type and no points falls back to default workflow', () => {
|
|
322
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
323
|
-
const { workflows } = loadWorkflowsFromDir(workflowsDir);
|
|
324
|
-
const story = {
|
|
325
|
-
id: 'default-1'
|
|
326
|
-
// No type, no points - should truly fall back to default
|
|
327
|
-
};
|
|
328
|
-
const result = routeStoryToWorkflow(story, workflows);
|
|
329
|
-
assert.ok(result, 'Should route to a workflow');
|
|
330
|
-
assert.strictEqual(result.workflow.name, 'tdd', 'No type/points should fall back to tdd (default)');
|
|
331
|
-
});
|
|
332
|
-
it('tdd.yaml has default: true trigger', () => {
|
|
333
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
334
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
335
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
336
|
-
assert.ok(result.workflow.triggers, 'tdd.yaml should have triggers');
|
|
337
|
-
assert.strictEqual(result.workflow.triggers.default, true, 'tdd.yaml should be the default workflow');
|
|
338
|
-
});
|
|
339
|
-
it('tdd.yaml triggers include feature and enhancement types', () => {
|
|
340
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
341
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
342
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
343
|
-
const types = result.workflow.triggers?.types || [];
|
|
344
|
-
assert.ok(types.includes('feature'), 'tdd.yaml should trigger on feature type');
|
|
345
|
-
assert.ok(types.includes('enhancement'), 'tdd.yaml should trigger on enhancement type');
|
|
346
|
-
});
|
|
347
|
-
it('trivial.yaml triggers include chore, fix, refactor types', () => {
|
|
348
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
349
|
-
const result = loadWorkflowFile(join(workflowsDir, 'trivial.yaml'));
|
|
350
|
-
assert.ok(result.success && result.workflow, 'Should load trivial.yaml');
|
|
351
|
-
const types = result.workflow.triggers?.types || [];
|
|
352
|
-
assert.ok(types.includes('chore'), 'trivial.yaml should trigger on chore type');
|
|
353
|
-
assert.ok(types.includes('fix'), 'trivial.yaml should trigger on fix type');
|
|
354
|
-
assert.ok(types.includes('refactor'), 'trivial.yaml should trigger on refactor type');
|
|
355
|
-
});
|
|
356
|
-
it('trivial.yaml has points.max: 2', () => {
|
|
357
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
358
|
-
const result = loadWorkflowFile(join(workflowsDir, 'trivial.yaml'));
|
|
359
|
-
assert.ok(result.success && result.workflow, 'Should load trivial.yaml');
|
|
360
|
-
const pointsMax = result.workflow.triggers?.points?.max;
|
|
361
|
-
assert.strictEqual(pointsMax, 2, 'trivial.yaml should have points.max: 2');
|
|
362
|
-
});
|
|
363
|
-
it('tdd.yaml has points.min: 3', () => {
|
|
364
|
-
assert.ok(workflowsDir, 'Could not find monorepo root');
|
|
365
|
-
const result = loadWorkflowFile(join(workflowsDir, 'tdd.yaml'));
|
|
366
|
-
assert.ok(result.success && result.workflow, 'Should load tdd.yaml');
|
|
367
|
-
const pointsMin = result.workflow.triggers?.points?.min;
|
|
368
|
-
assert.strictEqual(pointsMin, 3, 'tdd.yaml should have points.min: 3');
|
|
369
|
-
});
|
|
370
|
-
});
|
|
371
|
-
//# sourceMappingURL=workflow-migration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-migration.test.js","sourceRoot":"","sources":["../../src/workflow/workflow-migration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-permissions.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,2CAA2C;IAC3C,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAiBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CACtC,mBAAmB,EAAE,wBAAwB,EAAE,EAC/C,YAAY,EAAE,eAAe,EAAE,GAC9B,6BAA6B,CAoB/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-permissions.js","sourceRoot":"","sources":["../../src/workflow/workflow-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BH;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CAAC,MAAgC,EAAE,KAAsB;IACzE,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,wBAAwB,CACtC,mBAA+C,EAC/C,YAA+B;IAE/B,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAA+B,EAAE,CAAC;IAE/C,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAExE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAChC,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for Story MSSCI-11847: Permission Presets by Workflow
|
|
3
|
-
*
|
|
4
|
-
* These tests define the contract for workflow permission presets.
|
|
5
|
-
*
|
|
6
|
-
* Acceptance Criteria:
|
|
7
|
-
* - AC1: Workflow schema supports permissions field
|
|
8
|
-
* - AC2: Workflow start checks required permissions
|
|
9
|
-
* - AC3: Prompts for missing permissions
|
|
10
|
-
* - AC4: Cached grants skip prompts
|
|
11
|
-
*
|
|
12
|
-
* Run with: npm test
|
|
13
|
-
*/
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=workflow-permissions.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-permissions.test.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-permissions.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|