Files
cleveragents-core/features/tdd_plan_execute_phase_processing.feature
T
hurui200320 1878998b7a
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 3m19s
CI / typecheck (pull_request) Successful in 3m56s
CI / security (pull_request) Successful in 4m6s
CI / quality (pull_request) Successful in 4m10s
CI / integration_tests (pull_request) Successful in 7m20s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 1m8s
CI / e2e_tests (pull_request) Successful in 13m1s
CI / coverage (pull_request) Successful in 12m25s
CI / status-check (pull_request) Successful in 1s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 3m31s
CI / quality (push) Successful in 3m40s
CI / typecheck (push) Successful in 3m57s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 4m1s
CI / integration_tests (push) Successful in 8m55s
CI / unit_tests (push) Successful in 9m14s
CI / docker (push) Successful in 9s
CI / e2e_tests (push) Successful in 11m42s
CI / coverage (push) Successful in 11m37s
CI / status-check (push) Successful in 4s
CI / benchmark-publish (push) Successful in 29m25s
CI / benchmark-regression (pull_request) Successful in 54m8s
refactor(testing): rename tdd_bug/tdd_bug_N tags to tdd_issue/tdd_issue_N
Rename the TDD tag system from tdd_bug/tdd_bug_<N> to tdd_issue/tdd_issue_<N>
across the entire codebase. The tdd_expected_fail tag is unchanged.

The TDD expected-failure workflow is not limited to bug fixes — it applies
equally to any issue type (features, tasks, refactors). The _bug suffix was
misleading and narrowed the perceived scope. The new _issue suffix accurately
reflects that the TDD tagging system applies to any Forgejo issue.

Changes span 92 files:
- features/environment.py: validate_tdd_tags(), should_invert_result(), and
  apply_tdd_inversion() updated — regex, variables, error messages
- robot/tdd_expected_fail_listener.py: _validate_tdd_tags(), _should_invert_result(),
  start_test(), end_test() updated consistently
- 33 Behave .feature files: all @tdd_bug/@tdd_bug_<N> tags renamed
- 29 Robot .robot files: all tdd_bug/tdd_bug_<N> tags renamed
- 3 Robot fixture files renamed (tdd_bug_alone, tdd_missing_tdd_bug,
  tdd_expected_fail_missing_bug_n) with content and references updated
- Tag validation tests and helpers updated (function names, command dispatch
  keys, output strings, fixture references)
- CONTRIBUTING.md: section renamed from 'TDD Bug Test Tags' to
  'TDD Issue Test Tags', all tag references and examples updated
- noxfile.py: comment references updated
- Step definition files, mock helpers, and benchmark files: docstring
  references updated

ISSUES CLOSED: #965
2026-03-27 05:58:35 +00:00

43 lines
2.5 KiB
Gherkin

@tdd_issue @tdd_issue_967 @mock_only
Feature: TDD Issue #967 — plan execute only transitions state, does not run strategize or execute phase processing
As a developer
I want to verify that the plan execute CLI command handles plans in Strategize/QUEUED state
by running strategize phase processing before transitioning to Execute
So that the bug is captured and will be caught by a regression test
Bug #967: The plan execute CLI command originally only called
service.execute_plan(plan_id), which is a state transition only
(Strategize/COMPLETE Execute/QUEUED). It did not construct a
PlanExecutor or call run_strategize() / run_execute(). When a plan
was in Strategize/QUEUED state (immediately after plan use), the command
failed because execute_plan() requires Strategize/COMPLETE.
These tests exercise the CLI orchestration layer (the execute_plan command
handler in plan.py) via CliRunner to verify the bug is fixed. The fix
added phase-aware orchestration: when a plan is in Strategize/QUEUED,
the CLI runs PlanExecutor.run_strategize() before transitioning.
Scenario: CLI execute command handles plan in Strategize/QUEUED state
Given a CLI runner and mocked services for bug 967
And a plan in Strategize/QUEUED state for bug 967
When I invoke the plan execute CLI command for the QUEUED plan for bug 967
Then the CLI should succeed and the plan should reach Execute phase for bug 967
Scenario: CLI execute command orchestrates full lifecycle for QUEUED plan
Given a CLI runner and mocked services for bug 967
And a plan in Strategize/QUEUED state for bug 967
When I invoke the plan execute CLI command for the QUEUED plan for bug 967
Then the executor should have run strategize for the plan for bug 967
And the plan should have completed execute phase processing via CLI for bug 967
Scenario: Positive control — proper orchestration transitions QUEUED plan to Execute
Given a real plan executor with a plan in Strategize/QUEUED for bug 967
When I run the proper orchestration of strategize then execute for bug 967
Then the plan should be in Execute/QUEUED state via orchestration for bug 967
Scenario: CLI auto-discovery finds plans in Strategize/QUEUED state
Given a CLI runner and mocked services for bug 967
And a single plan in Strategize/QUEUED state eligible for auto-discovery for bug 967
When I invoke the plan execute CLI command without a plan id for bug 967
Then the CLI should succeed and auto-discover the QUEUED plan for bug 967