@phase1 @domain @unit_of_work @uow_lifecycle Feature: UnitOfWork lifecycle repository wiring As a system operator managing v3 lifecycle entities I want the UnitOfWork to expose actions and lifecycle_plans repositories So that transactional persistence works across both repositories atomically Background: Given a UnitOfWork backed by an in-memory database for lifecycle tests # --------------------------------------------------------------------------- # Repository exposure # --------------------------------------------------------------------------- @uow_actions_repo Scenario: UoW exposes actions repository When I access the actions repository from the UoW context Then the actions repository should be an ActionRepository instance @uow_lifecycle_plans_repo Scenario: UoW exposes lifecycle_plans repository When I access the lifecycle_plans repository from the UoW context Then the lifecycle_plans repository should be a LifecyclePlanRepository instance # --------------------------------------------------------------------------- # CRUD via UoW # --------------------------------------------------------------------------- @uow_create_action Scenario: Create action via UoW and retrieve it When I create an action "local/uow-action" via the UoW transaction Then the action "local/uow-action" should be retrievable from the actions repository @uow_create_plan Scenario: Create plan via UoW and retrieve it Given an action "local/uow-plan-action" exists via the UoW When I create a lifecycle plan "01HGZ6FE0AQDYTR4BX00000E01" via the UoW transaction Then the plan "01HGZ6FE0AQDYTR4BX00000E01" should be retrievable from the lifecycle_plans repository # --------------------------------------------------------------------------- # Cross-repository commit # --------------------------------------------------------------------------- @uow_commit_persists Scenario: UoW commit persists changes across repositories When I create an action "local/commit-action" and a plan "01HGZ6FE0AQDYTR4BX00000E02" in a single UoW transaction Then the action "local/commit-action" should be retrievable in a new transaction And the plan "01HGZ6FE0AQDYTR4BX00000E02" should be retrievable in a new transaction # --------------------------------------------------------------------------- # Rollback # --------------------------------------------------------------------------- @uow_rollback Scenario: UoW rollback discards changes across repositories When I create an action "local/rollback-action" and a plan "01HGZ6FE0AQDYTR4BX00000E03" but force a rollback Then the action "local/rollback-action" should not exist in a new transaction And the plan "01HGZ6FE0AQDYTR4BX00000E03" should not exist in a new transaction # --------------------------------------------------------------------------- # Legacy accessor still works # --------------------------------------------------------------------------- @uow_legacy_plans Scenario: Legacy plans accessor still returns PlanRepository When I access the legacy plans repository from the UoW context Then the legacy plans repository should be a PlanRepository instance