YuriyKrasilnikov commented on PR #37367:
URL: https://github.com/apache/superset/pull/37367#issuecomment-3794543737

   ### Playwright Timeout Analysis
   
   **All 4 Playwright tests fail** with identical error: `Timeout 30000ms 
exceeded navigating to /login/`
   
   **All 12 Cypress tests pass** in the same CI run — including login 
authentication.
   
   ---
   
   #### Code Flow Analysis
   
   The changes in this PR **cannot affect the login page**:
   
   ```
   Login Page Flow:
     /login/ → Flask → spa.html → loads "spa" bundle
                                       ↓
                                 preamble.ts + views/index.tsx
                                 (embedded code NOT loaded)
   
   Embedded Page Flow:
     /embedded/uuid/ → Flask → spa.html → loads "embedded" bundle
                                               ↓
                                         preamble.ts + embedded/index.tsx
                                               ↓
                                         setupEmbedded() ← our change
   ```
   
   **Key points:**
   - Webpack entry points are **completely separate** (`spa` vs `embedded`)
   - Login page loads `entry="spa"`, never touches `embedded/index.tsx`
   - `initFeatureFlags()` has idempotent guard: `if (!window.featureFlags)`
   - Login component does **not** use `isFeatureEnabled()`
   
   ---
   
   #### Proof: Cypress Tests Pass with Same Login
   
   Cypress tests in this PR use the same `/login/` endpoint and **all pass**:
   
   | Test | Status | Time |
   |------|--------|------|
   | cypress-matrix (0, chrome) | ✅ pass | 14m |
   | cypress-matrix (1, chrome) | ✅ pass | 14m |
   | cypress-matrix (2, chrome) | ✅ pass | 14m |
   | ... | ✅ pass | ... |
   | **All 12 Cypress jobs** | ✅ **pass** | |
   
   Cypress login command (`cy.login()`) posts to `/login/` — same endpoint 
Playwright fails on.
   
   ---
   
   #### Root Cause: Playwright Wait Strategy
   
   | Aspect | Playwright | Cypress |
   |--------|-----------|---------|
   | Login method | `page.goto('/login/')` waits for 'load' event | 
`cy.request(POST '/login/')` HTTP-only |
   | Timeout | 30s for full page load | 10s per HTTP request |
   | Failure mode | Times out if JS slow to load | Returns on HTTP response |
   
   Playwright requires the full page 'load' event. If Flask cold start or asset 
loading is slow, the 30s timeout is exceeded — even though the server is 
functional (proven by Cypress passing).
   
   ---
   
   #### Conclusion
   
   This is a **Playwright infrastructure flakiness issue**, not a code 
regression. The login endpoint works (Cypress proves it), and the embedded code 
changes cannot affect the spa bundle.
   
   Requesting re-run of failed Playwright tests.


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to