Files
temp/features/tdd_exec_env_resolution_precedence.feature
freemo 8ea00f5185 fix: restore CI quality tests to passing state (#4175)
Co-authored-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Co-committed-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
2026-04-08 11:02:14 +00:00

54 lines
2.8 KiB
Gherkin

# @tdd_issue @tdd_issue_1080 @tdd_expected_fail @tdd_issue_4178 @mock_only @skip
@skip
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
@skip
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"
# @tdd_issue @tdd_issue_4281 @tdd_expected_fail @skip
@skip
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"
# @tdd_issue @tdd_issue_4281 @tdd_expected_fail @skip
@skip
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"