Yicong-Huang opened a new pull request, #4971: URL: https://github.com/apache/texera/pull/4971
### What changes were proposed in this PR? Land Vitest browser-mode infrastructure for the frontend so future jointjs / layout-dependent specs have a real-Chromium runner. Adds: - `vitest.browser.config.ts` (Playwright-driven, with the resolve aliases needed to keep `[email protected]` and `lib0/webcrypto` from picking their Node entrypoints in the browser bundle). - A separate `gui:test-browser` Architect target so the default `gui:test` jsdom path stays fast. - `yarn test:browser` / `yarn test:browser:ci` scripts and a CI step on `ubuntu-latest` (Playwright on macOS / Windows multiplies minute cost for no extra signal). Chromium binary is cached by `frontend/yarn.lock` hash. - `**/__screenshots__` to `frontend/.gitignore` so failure artifacts don't get committed or trip prettier-eslint. ### What's actually routed through the new target Just `drag-drop.service.spec.ts` for now — its 4 working tests are a smoke test that the browser pipeline launches and runs. The 2 `it.skip` tests in that file turned out to fail under real Chromium too, because of a test-order bug (`findClosestOperators` is called before any `addOperator`), not a jsdom layout limitation. The skip + comment have been updated to reflect that and stay tied to #4866. `workflow-editor.component.spec.ts` is still excluded from both targets. Beyond the jointjs paper geometry that motivated #4866, it transitively pulls in `download.service.ts`'s top-level `require("content-disposition")`, which esbuild can't rewrite for the browser bundle. Unblocking that is a separate cleanup, tracked in the comment of `tsconfig.spec.json`. ### Any related issues, documentation, discussions? Part of #4866 — wires up the path; doesn't close it. ### How was this PR tested? - `yarn test`: 269 pass, 11 skip, 2 todo (jsdom, unchanged). - `yarn test:browser`: 4 pass, 2 skip (Chromium via Playwright). - `yarn format:ci` clean. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Opus 4.7 (1M context) -- 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]
