*** Settings *** Documentation Integration tests for GitWorktreeSandbox class methods: ... cleanup_stale and diff_against_head. Resource ${CURDIR}/common.resource Suite Setup Setup Test Environment Suite Teardown Cleanup Test Environment *** Variables *** ${HELPER} ${CURDIR}/helper_git_worktree_class_methods.py *** Test Cases *** Cleanup Stale With No Existing Branch Is Idempotent [Documentation] cleanup_stale does nothing when no stale branch exists ${result}= Run Process ${PYTHON} ${HELPER} cleanup-stale-no-branch cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} cleanup-stale-no-branch-ok Cleanup Stale Removes Existing Branch [Documentation] cleanup_stale removes a stale worktree branch ${result}= Run Process ${PYTHON} ${HELPER} cleanup-stale-removes-branch cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} cleanup-stale-removes-branch-ok Cleanup Stale With Empty Plan ID Is Safe [Documentation] cleanup_stale handles empty plan_id without raising ${result}= Run Process ${PYTHON} ${HELPER} cleanup-stale-empty-plan-id cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} cleanup-stale-empty-plan-id-ok Diff Against Head Returns None When No Branch [Documentation] diff_against_head returns None when no worktree branch exists ${result}= Run Process ${PYTHON} ${HELPER} diff-no-branch cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} diff-no-branch-ok Diff Against Head Returns Diff When Branch Has Changes [Documentation] diff_against_head returns a non-empty diff when the branch has commits ${result}= Run Process ${PYTHON} ${HELPER} diff-with-changes cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} diff-with-changes-ok Diff Against Head With Empty Plan ID Returns None [Documentation] diff_against_head returns None for empty plan_id ${result}= Run Process ${PYTHON} ${HELPER} diff-empty-plan-id cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} diff-empty-plan-id-ok Strategy Actor Resolves To None For Stub Config [Documentation] resolve_strategy_actor returns None when config_value is "stub" ${result}= Run Process ${PYTHON} ${HELPER} strategy-actor-stub cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} strategy-actor-stub-ok Strategy Actor Resolves To None Without Registry [Documentation] resolve_strategy_actor returns None when no registry is provided ${result}= Run Process ${PYTHON} ${HELPER} strategy-actor-no-registry cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} strategy-actor-no-registry-ok Correction Diff Returns Output For Plan Without Changeset [Documentation] correction_diff returns a message when no changeset exists ${result}= Run Process ${PYTHON} ${HELPER} correction-diff-no-changeset cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} correction-diff-no-changeset-ok Correction Diff Returns Output For Plan With Changeset [Documentation] correction_diff returns diff output when a changeset exists ${result}= Run Process ${PYTHON} ${HELPER} correction-diff-with-changeset cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} correction-diff-with-changeset-ok