Aman-Mittal opened a new pull request, #815:
URL: https://github.com/apache/fineract-backoffice-ui/pull/815

   Three things, each measured against a running `apache/fineract:latest`.
   
   ## A mutated signal, and the shard failure it was causing
   
   `floating-rate-form` added a rate period with `periods().push(...)`, which 
mutates the array the
   signal already holds. The signal's value never changes, so nothing is 
notified — the row reaches
   the screen only because this component runs with default change detection 
and the `@for` is
   re-evaluated on the next pass for unrelated reasons. `removePeriod()` 
spliced the same array.
   
   That made a row's arrival a matter of timing. `date-picker-revisit.spec.ts` 
adds two periods and
   counts the date pickers; it found one of them, **deterministically**, in 
mocked shard 1/4 — on
   `main` as much as on a branch, which I confirmed with a clean worktree. It 
would stop arriving at
   all under `OnPush` or without zones.
   
   The spec was racing too: it read the picker ids immediately after adding the 
rows. It now waits
   for the count it expects, which is what makes the unique-id assertion mean 
anything. The shard is
   green.
   
   ## The rest of #758
   
   #758 asked for one shared source of "tenant today" and the first pass 
covered the seven create
   forms the issue reproduced. The other forty-odd seeds now read the same 
source, so no screen
   dates a record by the browser's clock: the savings account view's three 
stamped dates, the client,
   group, centre, officer and disbursement dialogs, the working-capital 
actions, the loan, savings
   and both deposit transaction forms, the three charge due-date defaults, and 
the office, staff,
   journal entry, closure, reschedule, standing instruction, collection sheet 
and rate-chart forms.
   Report filters moved with them — a range defaulting past the tenant's today 
answers an empty
   report, which reads as no data rather than as a date problem.
   
   Read synchronously: by the time any of these renders, the header has 
resolved the date for the
   session, and where it has not, `today()` answers the browser's date exactly 
as the old
   initialiser did. **No test changed** — all 2487 pass untouched.
   
   `deposit-chart.ts` is deliberately left: a pure function module with no 
injector, whose `fromDate`
   is a request envelope rather than a user-facing default.
   
   ## The spec sync, and the two screens it caught
   
   The spec in `apache/fineract:latest` has moved since 12 October (`7b23f0ae…` 
→ `f9251770…`). Same
   602 paths and 967 operations — nothing removed, no call site loses its 
endpoint — but sixteen new
   schemas, twenty-one operations that stop taking `object` or `string`, and no 
more
   `CommandWrapper`.
   
   That precision caught two screens posting bodies the platform has always 
refused:
   
   **Email Messages could never send a message.** It posted `JSON.stringify({ 
to, subject, body })`
   — a JSON string where an object belongs, with three field names the endpoint 
does not accept:
   
   > The JSON syntax provided in the body of the request is invalid: Expected 
BEGIN_OBJECT but was
   > STRING at line 1 column 2
   
   The request is `{ clientId, emailSubject, emailMessage, locale }` — the 
recipient is a *client*,
   and the platform reads the address off their record. The free-text To field 
becomes the client
   search the rest of the app already uses, and the send now succeeds 
(`resourceId: 2`) where the
   old payload got a 400.
   
   **An SMS campaign could not be activated.** `activate()` passed the string 
`'activate'` as the
   request *body* and sent no `command`. The command belongs in the query, the 
body carries the
   date: `?command=activate` with `activationDate`, and `?command=close` for 
the counterpart.
   
   Creating an SMS campaign is still refused, for a third reason the new DTO 
makes visible —
   `runReportId` and `paramValue` are mandatory and the form collects neither. 
The payload is typed
   now, which is what names the gap; filling it means asking for a report and 
its parameters, which
   is a change to the form rather than to this sync.
   
   `public/api/fineract.provenance.json` is updated the way the weekly workflow 
writes it, and
   `verify-api-client` exits 0 against the committed client.
   
   ## Verification
   
   - **2487 unit tests / 310 files** green, in UTC and under deliberate load
   - mocked shard 1/4 green (the one that failed on `main`), and the picker 
spec green alone
   - backend e2e against a real platform: the date-default and double-submit 
specs, plus the deposit
     servicing set
   - `lint`, `lint:prune`, `prettier --check`, `check-api-surface`, 
`verify-api-client`, translation
     check: all clean


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to