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]

Reply via email to