64 lines
2.7 KiB
TypeScript
64 lines
2.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
||
import { runAddressDecomposeStage } from "../src/services/address_runtime/decomposeStage";
|
||
|
||
describe("address follow-up temporal regressions", () => {
|
||
it("replaces VAT month-only follow-up with the previous follow-up year", () => {
|
||
const result = runAddressDecomposeStage("а на март", {
|
||
previous_intent: "vat_payable_confirmed_as_of_date",
|
||
previous_filters: {
|
||
period_from: "2019-05-01",
|
||
period_to: "2019-05-31",
|
||
as_of_date: "2019-05-31"
|
||
},
|
||
previous_anchor_type: "unknown",
|
||
previous_anchor_value: null
|
||
});
|
||
|
||
expect(result).not.toBeNull();
|
||
expect(result?.intent.intent).toBe("vat_payable_confirmed_as_of_date");
|
||
expect(result?.filters.extracted_filters.period_from).toBe("2019-03-01");
|
||
expect(result?.filters.extracted_filters.period_to).toBe("2019-03-31");
|
||
expect(result?.filters.extracted_filters.as_of_date).toBe("2019-03-31");
|
||
expect(result?.baseReasons).toContain("period_derived_from_followup_context_year");
|
||
});
|
||
|
||
it("replaces VAT month-only follow-up with a later month from the same inherited year", () => {
|
||
const result = runAddressDecomposeStage("на сентябрь", {
|
||
previous_intent: "vat_payable_confirmed_as_of_date",
|
||
previous_filters: {
|
||
period_from: "2019-05-01",
|
||
period_to: "2019-05-31",
|
||
as_of_date: "2019-05-31"
|
||
},
|
||
previous_anchor_type: "unknown",
|
||
previous_anchor_value: null
|
||
});
|
||
|
||
expect(result).not.toBeNull();
|
||
expect(result?.intent.intent).toBe("vat_payable_confirmed_as_of_date");
|
||
expect(result?.filters.extracted_filters.period_from).toBe("2019-09-01");
|
||
expect(result?.filters.extracted_filters.period_to).toBe("2019-09-30");
|
||
expect(result?.filters.extracted_filters.as_of_date).toBe("2019-09-30");
|
||
expect(result?.baseReasons).toContain("period_derived_from_followup_context_year");
|
||
});
|
||
|
||
it("keeps same-date inventory pivot anchored to the previous VAT date", () => {
|
||
const result = runAddressDecomposeStage("какие остатки по складу на эту же дату", {
|
||
previous_intent: "vat_payable_confirmed_as_of_date",
|
||
previous_filters: {
|
||
period_from: "2019-09-01",
|
||
period_to: "2019-09-30",
|
||
as_of_date: "2019-09-30"
|
||
},
|
||
previous_anchor_type: "unknown",
|
||
previous_anchor_value: null
|
||
});
|
||
|
||
expect(result).not.toBeNull();
|
||
expect(result?.intent.intent).toBe("inventory_on_hand_as_of_date");
|
||
expect(result?.filters.extracted_filters.as_of_date).toBe("2019-09-30");
|
||
expect(result?.filters.extracted_filters.warehouse).toBeUndefined();
|
||
expect(result?.baseReasons).toContain("as_of_date_from_followup_context");
|
||
});
|
||
});
|