Aman-Mittal opened a new issue, #424:
URL: https://github.com/apache/fineract-backoffice-ui/issues/424
Not blocking anything — it retries green — but it costs a retry cycle on
unrelated PRs and trains people to ignore a red run.
## Symptom
`e2e/loan-product-down-payment.spec.ts:327` — *Loan product down payment and
tranches › does not send income recognition on a cumulative product* — times
out waiting for the submit button:
```
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
- waiting for getByTestId('loan-product-submit-btn')
- locator resolved to <ion-button type="submit" ...
data-testid="loan-product-submit-btn">
- attempting click action
- waiting for element to be visible, enabled and stable
335 | await selectOption(page, SCHEDULE_TYPE_LABEL, 'Cumulative');
336 |
> 337 | await page.getByTestId('loan-product-submit-btn').click();
```
The locator resolves — the button is on the page. It never becomes *stable
and enabled* within 30s.
## It is load-dependent, not code-dependent
Measured on the `mocked` project, same machine, `origin/main` and a feature
branch:
| Branch | default workers | `--workers=4` |
|---|---|---|
| `origin/main` | 1/39 failed | 78/78 passed |
| feature branch | 4/39 failed | 78/78 passed |
Both branches fail at default parallelism and both are clean when workers
are capped, so this is contention rather than anything a particular change
introduced. It predates the branch it was found on.
## Reproducing
```bash
npx playwright test --project=mocked e2e/loan-product-down-payment.spec.ts
--repeat-each=3
```
Expect a failure or two in 39 runs on a loaded machine. Capping
`--workers=4` hides it, which is the tell.
## Worth checking
The 30s timeout with the element already resolved points at "enabled and
stable" rather than at a slow render:
- **Is the button disabled while the form settles?** The test sets several
selects in sequence; if validity briefly flips, an `[disabled]` binding could
hold the button disabled longer under load. `fixtures.ts` already documents
reactive-form validity as the outstanding source of NG0100 in this suite, which
is the same territory.
- **Is something still animating?** "Stable" means two consecutive stable
bounding boxes; an Ionic overlay closing slowly under CPU contention would
defer the click.
Awaiting the button's enabled state explicitly, rather than relying on the
click's implicit wait, would both fix it and say what the test is actually
waiting for.
Please avoid "fixing" it by raising the timeout — that hides the signal
without answering why a click needs 30s.
--
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]