*** Settings ***
Documentation     Coverage threshold enforcement tests
...               Validates that coverage configuration and nox session are
...               properly set up to enforce the 96.5% coverage requirement.
Resource          ${CURDIR}/common.resource
Suite Setup       Setup Test Environment
Suite Teardown    Cleanup Test Environment

*** Test Cases ***
Noxfile Contains Coverage Threshold Constant
    [Documentation]    Verify COVERAGE_THRESHOLD resolves the floor (96.5) from
    ...                pyproject's single source [tool.coverage.report].fail_under
    [Tags]    coverage    config    tdd_issue    tdd_issue_4305

    # WS5: the noxfile delegates the constant to pyproject's single source
    # (COVERAGE_THRESHOLD = _read_coverage_fail_under()), so assert the
    # delegation plus the pyproject floor rather than a hardcoded literal.
    ${content}=    Get File    ${WORKSPACE}/noxfile.py
    Should Contain    ${content}    COVERAGE_THRESHOLD = _read_coverage_fail_under()
    ${pyproject}=    Get File    ${WORKSPACE}/pyproject.toml
    Should Contain    ${pyproject}    fail_under = 96.5

Pyproject Contains Coverage Run Section
    [Documentation]    Verify [tool.coverage.run] section exists in pyproject.toml
    [Tags]    coverage    config
    ${content}=    Get File    ${WORKSPACE}/pyproject.toml
    Should Contain    ${content}    [tool.coverage.run]

Pyproject Has Branch Coverage Enabled
    [Documentation]    Verify branch = true is in coverage.run config
    [Tags]    coverage    config
    ${content}=    Get File    ${WORKSPACE}/pyproject.toml
    Should Contain    ${content}    branch = true

Pyproject Coverage Source Includes Src
    [Documentation]    Verify src is in the coverage source list
    [Tags]    coverage    config
    ${content}=    Get File    ${WORKSPACE}/pyproject.toml
    Should Contain    ${content}    source = ["src"

Coverage Threshold Is 96.5 In Noxfile
    [Documentation]    Verify noxfile enforces 96.5% threshold via fail-under
    [Tags]    coverage    config    tdd_issue    tdd_issue_4227
    ${content}=    Get File    ${WORKSPACE}/noxfile.py
    Should Contain    ${content}    --fail-under=

Testing Guide Documentation Exists
    [Documentation]    Verify docs/development/testing.md was created
    [Tags]    coverage    docs
    ${testing_doc}=    Set Variable    ${WORKSPACE}/docs/development/testing.md
    File Should Exist    ${testing_doc}
    ${content}=    Get File    ${testing_doc}
    Should Contain    ${content}    97%
