From c27c9145b210ee1693db3585c2aade5ae7961534 Mon Sep 17 00:00:00 2001 From: "Joseph T. French" Date: Thu, 27 Aug 2026 12:04:28 -0500 Subject: [PATCH] fix(graphql): select the reconciling-item fields on the fiscal calendar query The 1.12.0 schema refresh added reconcilingItemCount and reconcilingItemSample to FiscalCalendar, but the GetLedgerFiscalCalendar operation document was not updated to select them, so the typed GraphQL model lacked fields the REST FiscalCalendarResponse already carried. Adds them to the selection set, regenerates the model, and covers both in the fiscal-calendar tests. --- .../graphql/generated/get_ledger_fiscal_calendar.py | 2 ++ robosystems_client/graphql/generated/operations.py | 2 ++ .../operations/ledger/GetLedgerFiscalCalendar.graphql | 1 + tests/test_ledger_client.py | 8 ++++++++ 4 files changed, 13 insertions(+) diff --git a/robosystems_client/graphql/generated/get_ledger_fiscal_calendar.py b/robosystems_client/graphql/generated/get_ledger_fiscal_calendar.py index 4fea667..9d58726 100644 --- a/robosystems_client/graphql/generated/get_ledger_fiscal_calendar.py +++ b/robosystems_client/graphql/generated/get_ledger_fiscal_calendar.py @@ -29,6 +29,8 @@ class GetLedgerFiscalCalendarFiscalCalendar(BaseModel): stranded_obligation_sample: list[ "GetLedgerFiscalCalendarFiscalCalendarStrandedObligationSample" ] = Field(alias="strandedObligationSample") + reconciling_item_count: int = Field(alias="reconcilingItemCount") + reconciling_item_sample: list[str] = Field(alias="reconcilingItemSample") sync_stale_days: Optional[int] = Field(alias="syncStaleDays") last_close_at: Optional[str] = Field(alias="lastCloseAt") initialized_at: Optional[str] = Field(alias="initializedAt") diff --git a/robosystems_client/graphql/generated/operations.py b/robosystems_client/graphql/generated/operations.py index a184d38..2e83b0d 100644 --- a/robosystems_client/graphql/generated/operations.py +++ b/robosystems_client/graphql/generated/operations.py @@ -649,6 +649,8 @@ scheduleName period } + reconcilingItemCount + reconcilingItemSample syncStaleDays lastCloseAt initializedAt diff --git a/robosystems_client/graphql/operations/ledger/GetLedgerFiscalCalendar.graphql b/robosystems_client/graphql/operations/ledger/GetLedgerFiscalCalendar.graphql index 57da333..d8c8b59 100644 --- a/robosystems_client/graphql/operations/ledger/GetLedgerFiscalCalendar.graphql +++ b/robosystems_client/graphql/operations/ledger/GetLedgerFiscalCalendar.graphql @@ -7,6 +7,7 @@ query GetLedgerFiscalCalendar { earliestPendingPeriod strandedObligationCount strandedObligationSample { eventId scheduleId scheduleName period } + reconcilingItemCount reconcilingItemSample syncStaleDays lastCloseAt initializedAt lastSyncAt periods { name startDate endDate status closedAt } diff --git a/tests/test_ledger_client.py b/tests/test_ledger_client.py index 2be7918..5cde524 100644 --- a/tests/test_ledger_client.py +++ b/tests/test_ledger_client.py @@ -258,6 +258,8 @@ def test_get_fiscal_calendar(self, mock_execute, mock_config, graph_id): "earliestPendingPeriod": None, "strandedObligationCount": 0, "strandedObligationSample": [], + "reconcilingItemCount": 0, + "reconcilingItemSample": [], "syncStaleDays": None, "lastCloseAt": None, "initializedAt": "2026-01-01T00:00:00Z", @@ -272,6 +274,8 @@ def test_get_fiscal_calendar(self, mock_execute, mock_config, graph_id): assert cal.closeable_now is True assert cal.fiscal_year_start_month == 1 assert cal.stranded_obligation_count == 0 + assert cal.reconciling_item_count == 0 + assert cal.reconciling_item_sample == [] @patch("robosystems_client.graphql.client.GraphQLClient.execute") def test_get_fiscal_calendar_names_blocking_obligations( @@ -304,6 +308,8 @@ def test_get_fiscal_calendar_names_blocking_obligations( "period": "2026-03", } ], + "reconcilingItemCount": 1, + "reconcilingItemSample": ["ri_bank_fee_2026-03"], "syncStaleDays": None, "lastCloseAt": None, "initializedAt": "2026-01-01T00:00:00Z", @@ -319,6 +325,8 @@ def test_get_fiscal_calendar_names_blocking_obligations( assert cal.stranded_obligation_count == 2 assert cal.stranded_obligation_sample[0].schedule_name == "Prepaid Insurance" assert cal.stranded_obligation_sample[0].period == "2026-03" + assert cal.reconciling_item_count == 1 + assert cal.reconciling_item_sample == ["ri_bank_fee_2026-03"] # ── Writes (Operation envelope) ────────────────────────────────────────