import { describe, expect, it } from "vitest"; import { resolveAddressIntent } from "../src/services/addressIntentResolver"; describe("addressIntentResolver regression bridges", () => { it("detects colloquial VAT liability for a month period", () => { const result = resolveAddressIntent("прикинь какой ндс нам надо заплатить на февраль 2017"); expect(result.intent).toBe("vat_liability_confirmed_for_tax_period"); }); it("detects payables snapshot wording in plain human form", () => { const result = resolveAddressIntent("мы должны комуто денег на сегодня?"); expect(result.intent).toBe("payables_confirmed_as_of_date"); }); it("detects receivables snapshot wording through light current-turn typo noise", () => { const result = resolveAddressIntent( "\u043a\u0442\u043e \u043d\u0430\u043c\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u0435\u043d\u0435\u0433 \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f" ); expect(result.intent).toBe("receivables_confirmed_as_of_date"); expect(result.reasons).toContain("current_turn_noise_normalized"); }); it("detects top customer all-time revenue wording", () => { const result = resolveAddressIntent("кто у нас самый доходный клиент за все время"); expect(result.intent).toBe("customer_revenue_and_payments"); }); it("detects top-year company revenue wording", () => { const result = resolveAddressIntent("какой у нас самый доходный год"); expect(result.intent).toBe("customer_revenue_and_payments"); }); it("detects specific counterparty turnover wording as revenue profile", () => { const result = resolveAddressIntent( "\u043a\u0430\u043a\u043e\u0439 \u043e\u0431\u043e\u0440\u043e\u0442 \u0431\u044b\u043b \u0441\u0432\u043a" ); expect(result.intent).toBe("customer_revenue_and_payments"); expect(result.reasons).toContain("specific_counterparty_revenue_bridge_signal_detected"); }); it("keeps documents by counterparty wording out of revenue bridge", () => { const result = resolveAddressIntent( "\u043f\u043e\u043a\u0430\u0436\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0441\u0432\u043a" ); expect(result.intent).toBe("list_documents_by_counterparty"); }); it("does not collapse very old stock request into generic inventory snapshot", () => { const result = resolveAddressIntent("Есть ли остатки товара, которые закупались очень давно"); expect(result.intent).toBe("inventory_aging_by_purchase_date"); }); it("detects bare historical inventory root with explicit month-year", () => { const result = resolveAddressIntent("остатки РЅР° март 2016"); expect(result.intent).toBe("inventory_on_hand_as_of_date"); }); });