"""Generated API smoke tests. Review targets and payloads before running."""

import os

import pytest
import requests

DEFAULT_BASE_URL = 'https://api.example.com'
BASE_URL = os.environ.get("API_BASE_URL", DEFAULT_BASE_URL).rstrip("/")
TIMEOUT_SECONDS = 20


def _require_base_url():
    if not BASE_URL:
        pytest.skip("Set API_BASE_URL to the API origin")
    return BASE_URL


def _headers(extra=None):
    headers = dict(extra or {})
    if token := os.environ.get('API_BEARER_TOKEN'):
        headers["Authorization"] = f"Bearer {token}"
    if api_key := os.environ.get('API_KEY'):
        headers["X-API-Key"] = api_key
    return headers


def test_gethealth():
    base_url = _require_base_url()
    response = requests.request('GET', base_url + '/health', headers=_headers({}), timeout=TIMEOUT_SECONDS)
    assert response.status_code in [200]

@pytest.mark.skipif(
    os.environ.get("API_ALLOW_MUTATING_TESTS") != "1",
    reason="POST test disabled; set API_ALLOW_MUTATING_TESTS=1",
)
def test_createwidget():
    base_url = _require_base_url()
    response = requests.request('POST', base_url + '/widgets', headers=_headers({}), json={'name': 'Acre'}, timeout=TIMEOUT_SECONDS)
    assert response.status_code in [201]
