import pytest
from sqlalchemy import inspect, text

pytestmark = pytest.mark.integration


@pytest.mark.asyncio
async def test_credential_has_credential_type_not_kind(db):
    cols = (await db.run_sync(
        lambda sync_session: [c["name"] for c in inspect(sync_session.bind).get_columns("credential")]
    ))
    assert "credential_type" in cols
    assert "kind" not in cols
    assert "status" not in cols
    assert "last_verified" in cols


@pytest.mark.asyncio
async def test_credential_round_trip(db):
    from backend.app.models import Credential

    db.add(Credential(
        platform="patreon",
        credential_type="cookies",
        encrypted_blob=b"\x00\x01\x02",
    ))
    await db.flush()
    row = (await db.execute(
        text("SELECT credential_type, last_verified FROM credential WHERE platform='patreon'")
    )).one()
    assert row.credential_type == "cookies"
    assert row.last_verified is None
