from tests.api_client import make_client_product, make_load_in


def test_lookups(admin_api):
    cid, pid = make_client_product(admin_api)
    li = make_load_in(admin_api, cid, pid, 5)
    assert admin_api.get("/api/lookup/clients", params={"keyword": "ac"}).json()[0]["name"] == "Acme"
    assert admin_api.get("/api/lookup/products", params={"keyword": "ki"}).json()[0]["units"] == [1]
    assert admin_api.get("/api/lookup/suppliers", params={"keyword": "r1"}).json()[0]["rmp_number"] == "R1"
    assert admin_api.get("/api/lookup/batches", params={"product_id": pid}).json()[0]["number"] == "B1"
    assert admin_api.get("/api/lookup/load-ins", params={"client_id": cid}).json()[0]["id"] == li["id"]


def test_dashboard(admin_api):
    cid, pid = make_client_product(admin_api)
    make_load_in(admin_api, cid, pid, 5)
    make_load_in(admin_api, cid, pid, 1, code="LI-2", complete=False)
    d = admin_api.get("/api/dashboard").json()
    assert d["recent"][0]["kind"] == "Load-in"
    assert d["products"] == [{"id": pid, "title": "Kiwi", "stock": 5, "batch_count": 1}]
    assert d["drafts"] == {"load_in": 1, "load_out": 0}
