*** Settings ***
Documentation    Integration tests for CLI global options --data-dir, --config-path, and -v.
...
...              Verifies that the spec-required global options are properly accepted
...              and propagated end-to-end (issue #6785).
Resource         ${CURDIR}/common.resource
Suite Setup      Setup Test Environment
Suite Teardown   Cleanup Test Environment

*** Variables ***
${HELPER}    ${CURDIR}/helper_cli_global_options.py

*** Test Cases ***
Data Dir Option Accepted With Valid Directory
    [Documentation]    Verify --data-dir is accepted without error for an existing directory.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    data-dir-accepted    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-data-dir-accepted-ok

Config Path Option Accepted With Valid File
    [Documentation]    Verify --config-path is accepted without error for an existing file.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    config-path-accepted    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-config-path-accepted-ok

Verbosity Flag Accepted
    [Documentation]    Verify -v flag is accepted without crashing.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    verbosity-accepted    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-verbosity-accepted-ok

Data Dir And Config Path Combined
    [Documentation]    Verify --data-dir and --config-path can be combined end-to-end.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    combined-options    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-combined-ok

Data Dir Overrides Settings Data Dir
    [Documentation]    Verify --data-dir properly overrides CLEVERAGENTS_DATA_DIR.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    data-dir-override    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-data-dir-override-ok

Config Path Overrides Config Service Path
    [Documentation]    Verify --config-path properly overrides the config service path.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    config-path-override    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-config-path-override-ok

Verbosity Sets Log Level Correctly
    [Documentation]    Verify -v count correctly maps to log levels.
    ${result}=    Run Process    ${PYTHON}    ${HELPER}    verbosity-levels    cwd=${WORKSPACE}
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    cli-global-options-verbosity-levels-ok

Help Shows All Three Options
    [Documentation]    Verify --help output includes --data-dir, --config-path, and -v.
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    --help
    ...    timeout=60s    on_timeout=kill
    Log    ${result.stdout}
    Log    ${result.stderr}
    Should Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stdout}    --data-dir
    Should Contain    ${result.stdout}    --config-path
    Should Contain    ${result.stdout}    -v
