Files
cleveragents-core/features/tdd_exec_env_resolution_precedence.feature
T
brent.edwards 3fa07fb772
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 41s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m45s
CI / typecheck (pull_request) Successful in 3m56s
CI / security (pull_request) Successful in 4m6s
CI / integration_tests (pull_request) Successful in 5m50s
CI / unit_tests (pull_request) Successful in 6m7s
CI / docker (pull_request) Successful in 1m40s
CI / e2e_tests (pull_request) Successful in 8m16s
CI / coverage (pull_request) Successful in 11m48s
CI / status-check (pull_request) Successful in 1s
CI / build (push) Successful in 13s
CI / lint (push) Successful in 3m17s
CI / quality (push) Successful in 3m48s
CI / typecheck (push) Successful in 3m53s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 4m1s
CI / integration_tests (push) Successful in 5m55s
CI / unit_tests (push) Successful in 6m0s
CI / docker (push) Failing after 51s
CI / e2e_tests (push) Successful in 8m48s
CI / coverage (push) Successful in 12m36s
CI / status-check (push) Successful in 6s
CI / benchmark-publish (push) Successful in 34m54s
CI / benchmark-regression (pull_request) Successful in 1h1m15s
test: align #1080 expected-fail tags with TDD schema
Add @tdd_issue and @tdd_issue_1080 so the expected-fail scenario passes the global tag validator during unit_tests.
2026-03-27 22:53:33 +00:00

48 lines
2.6 KiB
Gherkin

@tdd_issue @tdd_issue_1080 @tdd_bug @tdd_bug_1080 @mock_only
Feature: TDD Bug #1080 — execution environment resolution ignores project-level override
As a developer
I want execution environment resolution to honour the 6-level precedence chain
So that project-level overrides (precedence level 2) take effect correctly
# Bug #1080: The ExecutionEnvironmentResolver uses a flat priority chain
# (tool > plan > project > default) that does not distinguish between
# "override" and "fallback" priority semantics. Per the spec (§Execution
# Environment Routing), the correct 6-level precedence is:
#
# 1. Plan-level with priority: override
# 2. Project-level with priority: override
# 3. Nearest-ancestor devcontainer (auto-detected)
# 4. Plan-level with priority: fallback
# 5. Project-level with priority: fallback
# 6. Host (default)
#
# The critical failure: when a project has execution_environment set with
# priority "override" and a plan has execution_environment set with
# priority "fallback", the plan incorrectly wins because the resolver
# treats all plan-level settings as higher priority than project-level.
#
# This test captures the bug by asserting the CORRECT precedence behavior.
# The @tdd_expected_fail tag on the bug-capturing scenario inverts the
# result: the assertion fails (proving the bug exists) but CI reports it
# as passed. When bug #1080 is fixed, the @tdd_expected_fail tag must
# be removed.
#
# The @mock_only tag restricts this feature to in-process mock execution;
# it does not require any external services or container infrastructure.
@tdd_expected_fail
Scenario: Bug #1080 - Project-level override beats plan-level fallback (precedence level 2 vs 4)
Given a precedence-aware execution environment resolver
When I resolve precedence with plan env "host" at priority "fallback" and project env "container" at priority "override"
Then the precedence-resolved environment should be "container"
Scenario: Regression guard - Plan-level override still beats project-level override (precedence level 1 vs 2)
Given a precedence-aware execution environment resolver
When I resolve precedence with plan env "host" at priority "override" and project env "container" at priority "override"
Then the precedence-resolved environment should be "host"
Scenario: Regression guard - Project-level override beats host default (precedence level 2 vs 6)
Given a precedence-aware execution environment resolver
When I resolve precedence with no plan env and project env "container" at priority "override"
Then the precedence-resolved environment should be "container"