#[path = "support/runtime_workspace_worktree.rs"]
mod runtime_workspace_worktree;
mod support;
macro_rules! runtime_async_tests {
($($name:ident),* $(,)?) => {
$(
#[tokio::test]
async fn $name() -> anyhow::Result<()> {
runtime_workspace_worktree::$name().await
}
)*
};
}
runtime_async_tests!(
task_output_returns_worktree_subagent_result_text,
enter_worktree_tool_switches_workspace_and_restores_on_reload,
use_workspace_path_adopts_attached_parent_for_existing_git_worktree,
enter_workspace_conflict_preserves_existing_occupancy,
detach_workspace_persists_empty_binding_across_restart,
enter_worktree_projection_honors_requested_cwd,
exit_worktree_keep_restores_workspace_and_persists_state,
exit_worktree_does_not_remove_clean_worktree,
exit_worktree_does_not_remove_dirty_worktree,
worktree_subagent_task_creates_dedicated_per_task_worktree,
worktree_child_agent_task_records_workspace_mode,
worktree_subagent_task_returns_metadata_to_parent_session,
worktree_subagent_task_auto_removes_worktree_when_no_changes_wt104,
worktree_subagent_task_retains_worktree_when_changes_detected_wt105,
);