Skip to content

chore(desktop-e2e): add Playwright _electron E2E suite for the desktop app - #1993

Open
paustint wants to merge 3 commits into
mainfrom
chore/desktop-e2e-automation
Open

chore(desktop-e2e): add Playwright _electron E2E suite for the desktop app#1993
paustint wants to merge 3 commits into
mainfrom
chore/desktop-e2e-automation

Conversation

@paustint

Copy link
Copy Markdown
Contributor

Repurposes the unused jetstream-desktop-client-e2e scaffold (renamed to jetstream-desktop-e2e) into a real Electron-launching Playwright suite. Previously it only drove the renderer as a plain web page and never exercised the actual Electron shell.

  • Launches the built main.js with an isolated --user-data-dir per test; auth is seeded by calling the same /desktop-app/auth/session + /verify endpoints the app itself uses, no browser/OS login UI driven
  • Covers app launch, cross-origin window.open() -> shell.openExternal routing, authenticated boot, the Settings screen, a live Salesforce query round-trip, and first-pass adversarial coverage of the dataHistoryRequest/request() IPC surface (path traversal, host independence)
  • Adds reusable ElectronApiClient/ElectronMainProcess fixtures to @jetstream/test/e2e-utils so a future security-fuzz suite can share them without rework
  • Wires a new desktop-e2e CI job (Xvfb-wrapped, gated on the desktop projects being affected) — not yet added to the required e2e check pending a proven run
  • Fixes global.setup.ts to grant the EXAMPLE_USER account's desktop entitlement: without it, initSession's MissingEntitlement redirect is silently followed by Playwright's request API, returning the login page's HTML where JSON was expected

Copilot AI lite review requested due to automatic review settings August 22, 2026 13:35
@socket-security

socket-security Bot commented Aug 22, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm @sentry/node-core is 60.0% likely obfuscated

Confidence: 0.60

Location: Package overview

From: pnpm-lock.yamlnpm/@sentry/node@10.70.0npm/@sentry/node-core@10.70.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/node-core@10.70.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…p app

Repurposes the unused jetstream-desktop-client-e2e scaffold (renamed to
jetstream-desktop-e2e) into a real Electron-launching Playwright suite.
Previously it only drove the renderer as a plain web page and never
exercised the actual Electron shell.

- Launches the built main.js with an isolated --user-data-dir per test;
  auth is seeded by calling the same /desktop-app/auth/session +
  /verify endpoints the app itself uses, no browser/OS login UI driven
- Covers app launch, cross-origin window.open() -> shell.openExternal
  routing, authenticated boot, the Settings screen, a live Salesforce
  query round-trip, and first-pass adversarial coverage of the
  dataHistoryRequest/request() IPC surface (path traversal, host
  independence)
- Adds reusable ElectronApiClient/ElectronMainProcess fixtures to
  @jetstream/test/e2e-utils so a future security-fuzz suite can share
  them without rework
- Wires a new desktop-e2e CI job (Xvfb-wrapped, gated on the desktop
  projects being affected) — not yet added to the required e2e check
  pending a proven run
- Fixes global.setup.ts to grant the EXAMPLE_USER account's `desktop`
  entitlement: without it, initSession's MissingEntitlement redirect is
  silently followed by Playwright's request API, returning the login
  page's HTML where JSON was expected
@paustint
paustint force-pushed the chore/desktop-e2e-automation branch from 9277f37 to 512472b Compare August 22, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants