"""Test backend. These tests just ensure that the backend works well enough for us to run the rest of the tests. """ import pytest import httpx from sshecret.backend import SshecretBackend from .clients import create_test_client @pytest.mark.asyncio async def test_healthcheck(backend_client: httpx.AsyncClient) -> None: """Test healthcheck command.""" resp = await backend_client.get("/health") assert resp.status_code == 200 assert resp.json() == {"status": "LIVE"} @pytest.mark.asyncio async def test_create_client(backend_api: SshecretBackend) -> None: """Test creating a client.""" test_client = create_test_client("test") await backend_api.create_client("test", test_client.public_key, "A test client") # fetch the list of clients. clients = await backend_api.get_clients() assert clients is not None assert len(clients) == 1 assert clients[0].name == "test" assert clients[0].public_key == test_client.public_key @pytest.mark.asyncio async def test_create_secret(backend_api: SshecretBackend) -> None: """Test creating secrets.""" test_client = create_test_client("test") await backend_api.create_client("test", test_client.public_key, "A test client") await backend_api.create_client_secret("test", "mysecret", "encrypted_secret") secrets = await backend_api.get_secrets() assert len(secrets) == 1 assert secrets[0].name == "mysecret" secret_to_client = await backend_api.get_secret("mysecret") assert secret_to_client is not None assert secret_to_client.name == "mysecret" assert "test" in secret_to_client.clients secret = await backend_api.get_client_secret("test", "mysecret") assert secret is not None assert secret == "encrypted_secret"