Bot & Automation

jorgasisten

/root/hermes-projects/jorgasisten

tests/test_sheets_find_rows.py text
from types import SimpleNamespace

from jorgasisten.schemas import SheetRow
from jorgasisten.services.sheets import GoogleSheetsClient


def test_find_rows_returns_top_match_when_score_gap_is_clear() -> None:
    client = GoogleSheetsClient(
        settings=SimpleNamespace(
            google_service_account_json_base64="x",
            google_application_credentials="",
            max_sample_rows=5,
            max_result_rows=12,
            google_sheets_spreadsheet_id="sheet-123",
        ),
        spreadsheet_id="sheet-123",
    )
    client.read_rows = lambda _sheet_name: [  # type: ignore[method-assign]
        SheetRow(sheet_name="Stok", row_number=2, values={"Produk": "Oli MPX", "Qty": "8"}),
        SheetRow(sheet_name="Stok", row_number=3, values={"Produk": "Oli Federal", "Qty": "5"}),
    ]

    rows = client.find_rows("Stok", {"query": "oli mpx"})

    assert len(rows) == 1
    assert rows[0].values["Produk"] == "Oli MPX"