8 Commits

Author SHA1 Message Date
Matt Godbolt
df43146b8c Improve TypeScript type safety in Cypress tests (#7997)
Address Copilot feedback by replacing `any` types with proper TypeScript
types in Cypress test files.

## Changes

**cypress/support/utils.ts:**
- `win: any` → `win: Cypress.AUTWindow`
- `$element: any` → `$element: JQuery<HTMLTextAreaElement>`
- `$body: any` → `$body: JQuery<HTMLElement>`

**cypress/e2e/claude-explain.cy.ts:**
- `req: any` → `req: Cypress.Interception` (3 instances)
- `url: any` → `url: string`

## Benefits

- Improves type safety and catches potential runtime errors at compile
time
- Follows TypeScript best practices
- Addresses all Copilot suggestions for better code quality
- No functional changes, purely type improvements

All TypeScript checks pass and no functionality is affected.

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-05 16:54:24 -05:00
Matt Godbolt
50ec53d0e7 Add comprehensive Cypress E2E tests for Claude Explain feature (#7751)
- Add comprehensive test suite covering all Claude Explain functionality:
  - Basic pane opening and consent flow
  - no-ai directive detection
  - API interactions and error handling
  - Options/customization features
  - Caching behavior and persistence
  - Compilation state handling
  - State persistence across page loads

- Fix caching bug in explain-view.ts:
  - Cache was incorrectly implemented as instance variable, losing cached explanations when panes were closed/reopened
  - Made cache static to persist across all pane instances (matches consent persistence pattern)
  - Fixes failing "Caching and reload" Cypress test
  - Aligns implementation with documented behavior: "shared across all explain views in the session"

- Add test utilities and helpers:
  - Monaco editor content manipulation using clipboard events
  - Claude Explain specific helpers moved to test file
  - General utilities remain in utils.ts

- Performance optimizations:
  - Clear Cypress intercepts in afterEach to prevent O(n²) degradation
  - Use :visible selectors to avoid GoldenLayout template elements
  - Proper mock setup timing to prevent race conditions

- Add comprehensive README with lessons learned and best practices

All tests use fake test data (test_first, focus_a, etc.) to clearly distinguish from production values and prevent accidental API calls.
2025-08-05 16:42:48 -05:00
Matt Godbolt
23fad10939 Unit testing the frontend (#7829)
This adds some unit tests for the front end.

- configures "frontend tests" as a unit tests in `static/tests`,
removing the old cypress-requiring "unit" tests
- hack enough of a DOM  to get things working
- port motd and id tests
- *adds* a golden layout checks  (see #7807)
- Updates READMEs etc

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-19 08:46:57 -05:00
Mats Jun Larsen
5eea63328f Migrate to Biome for linting and formatting (#7033) 2025-02-02 17:54:31 +00:00
Matt Godbolt
a8f832f80c Bump to latest cypress (#4853)
Latest cypress:
- updated all the tests
- fixed up warnings
- got rid of isolation stuff, it's now isolated by default
- added simple docs
- added `--noLocal` to prevent any local config from screwing up when
testing locally
- store screenshot artifacts if things go wrong
2023-03-14 10:00:40 -05:00
Jeremy Rifkin
8e53f01553 Tsify cypress/ (#4717)
<!-- THIS COMMENT IS INVISIBLE IN THE FINAL PR, BUT FEEL FREE TO REMOVE
IT
Thanks for taking the time to improve CE. We really appreciate it.
Before opening the PR, please make sure that the tests & linter pass
their checks,
  by running `make check`.
In the best case scenario, you are also adding tests to back up your
changes,
  but don't sweat it if you don't. We can discuss them at a later date.
Feel free to append your name to the CONTRIBUTORS.md file
Thanks again, we really appreciate this!
-->
2023-02-12 11:06:10 -05:00
Markus
e490978410 Convert device-view.js to typescript (#4105) 2022-10-12 17:07:04 +02:00
Rubén Rincón Blanco
8d6f171197 Cypress test to open all panes (#3953) 2022-09-04 17:31:36 +02:00