"""
Pytest configuration and fixtures for StarPunk tests
"""

import pytest
import tempfile
from pathlib import Path
from starpunk import create_app


@pytest.fixture
def app():
    """Create test Flask application"""
    # Create temporary directory for test data
    temp_dir = tempfile.mkdtemp()
    temp_path = Path(temp_dir)

    # Test configuration
    config = {
        "TESTING": True,
        "DEBUG": False,
        "DATA_PATH": temp_path,
        "NOTES_PATH": temp_path / "notes",
        "DATABASE_PATH": temp_path / "test.db",
        "SESSION_SECRET": "test-secret-key",
        "ADMIN_ME": "https://test.example.com",
        "SITE_URL": "http://localhost:5000",
    }

    # Create app with test config
    app = create_app(config)

    yield app

    # Cleanup (optional - temp dir will be cleaned up by OS)


@pytest.fixture
def client(app):
    """Create test client"""
    return app.test_client()


@pytest.fixture
def runner(app):
    """Create test CLI runner"""
    return app.test_cli_runner()
