ad3c828ceb
Add GitWorktreeSandbox.cleanup_stale() and diff_against_head() class methods, create strategy_actor module with resolve_strategy_actor(), add PlanApplyService.correction_diff() method, and fix _get_apply_service() and _get_plan_executor() to use correct API signatures. Add Behave BDD unit tests and Robot Framework integration tests for all new functionality. ISSUES CLOSED: #8628
42 lines
2.0 KiB
Gherkin
42 lines
2.0 KiB
Gherkin
Feature: GitWorktreeSandbox class methods for stale cleanup and diff
|
|
As a developer
|
|
I want class-level helpers to clean up stale worktrees and generate diffs
|
|
So that the CLI can manage sandbox lifecycle without a sandbox instance
|
|
|
|
Background:
|
|
Given a gwt_cm test git repository is initialised
|
|
|
|
Scenario: cleanup_stale removes a stale worktree branch
|
|
Given a gwt_cm stale worktree branch exists for plan "plan-stale-001"
|
|
When I call GitWorktreeSandbox.cleanup_stale for plan "plan-stale-001"
|
|
Then the gwt_cm stale branch should no longer exist
|
|
|
|
Scenario: cleanup_stale is idempotent when no stale branch exists
|
|
When I call GitWorktreeSandbox.cleanup_stale for plan "plan-nonexistent-999"
|
|
Then no gwt_cm exception should have been raised
|
|
|
|
Scenario: cleanup_stale handles empty plan_id gracefully
|
|
When I call GitWorktreeSandbox.cleanup_stale with empty plan_id
|
|
Then no gwt_cm exception should have been raised
|
|
|
|
Scenario: cleanup_stale handles empty original_path gracefully
|
|
When I call GitWorktreeSandbox.cleanup_stale with empty original_path
|
|
Then no gwt_cm exception should have been raised
|
|
|
|
Scenario: diff_against_head returns None when no worktree branch exists
|
|
When I call GitWorktreeSandbox.diff_against_head for plan "plan-no-branch-001"
|
|
Then the gwt_cm diff result should be None
|
|
|
|
Scenario: diff_against_head returns diff when worktree branch has changes
|
|
Given a gwt_cm worktree branch with changes exists for plan "plan-diff-001"
|
|
When I call GitWorktreeSandbox.diff_against_head for plan "plan-diff-001"
|
|
Then the gwt_cm diff result should not be None
|
|
|
|
Scenario: diff_against_head handles empty plan_id gracefully
|
|
When I call GitWorktreeSandbox.diff_against_head with empty plan_id
|
|
Then the gwt_cm diff result should be None
|
|
|
|
Scenario: diff_against_head handles empty original_path gracefully
|
|
When I call GitWorktreeSandbox.diff_against_head with empty original_path
|
|
Then the gwt_cm diff result should be None
|