mirror of
https://github.com/Kong/insomnia.git
synced 2026-11-06 13:04:11 -05:00
* feat: enhance accessibility and testing capabilities across UI components - Added data-testid attributes to various components for improved testing. - Updated mock-url-bar to include test IDs for method and path. - Enhanced generate-code-modal with test IDs for dropdowns. - Included test IDs in git-branches-modal and git-project-branches-modal for error messages. - Added test IDs to import-modal header and input-vault-key-modal for error display. - Enhanced new-workspace-modal with test IDs for mock server type options. - Included test IDs in select-modal for the select element. - Added test IDs in sync-merge-modal for merge conflict items. - Enhanced visual-diff components with test IDs for better test coverage. - Included test IDs in workspace-certificates-modal for CA certificate section. - Enhanced workspace-environments-edit-modal with test IDs for environment icons. - Added test IDs in pane-header for breadcrumbs. - Included test IDs in request-result-card for runner results. - Enhanced request-test-result-pane with test IDs for test result rows. - Added test IDs in project-create-form for unknown fields warning. - Enhanced AI settings with test IDs for toggle switches. - Included test IDs in boolean-setting for settings labels. - Enhanced scripting-settings with test IDs for rule toggles. - Added test IDs in sidebar components for search fields and nodes. - Enhanced spec-view with test IDs for method buttons. - Included test IDs in tab components for tab titles. - Enhanced tags with test IDs for size, time, and URL tags. - Added test IDs in tag-editor for tag arguments. - Enhanced toast-notification with test IDs for toast body and content. - Included test IDs in response-headers-viewer for header rows and values. - Enhanced event-log-view with test IDs for event rows and cells. * feat: add remaining test ids for folder pane, staging button, drop indicator and test results - folder-pane on the request group Tabs - stage-this-file / unstage-this-file on the git staging preview button - drop-indicator-folder-name and data-valid on the sidebar drop indicator - test-result-case / test-result-error inside the test result name Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat: add data-selected attributes for improved testing and UI state indication * fix: use unique test ids for graphql explorer root types Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix: make sidebar data-parent-id return the parent row id Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat: enhance accessibility and testing capabilities across UI components - Added data-testid attributes to various components for improved testing. - Updated mock-url-bar to include test IDs for method and path. - Enhanced generate-code-modal with test IDs for dropdowns. - Included test IDs in git-branches-modal and git-project-branches-modal for error messages. - Added test IDs to import-modal header and input-vault-key-modal for error display. - Enhanced new-workspace-modal with test IDs for mock server type options. - Included test IDs in select-modal for the select element. - Added test IDs in sync-merge-modal for merge conflict items. - Enhanced visual-diff components with test IDs for better test coverage. - Included test IDs in workspace-certificates-modal for CA certificate section. - Enhanced workspace-environments-edit-modal with test IDs for environment icons. - Added test IDs in pane-header for breadcrumbs. - Included test IDs in request-result-card for runner results. - Enhanced request-test-result-pane with test IDs for test result rows. - Added test IDs in project-create-form for unknown fields warning. - Enhanced AI settings with test IDs for toggle switches. - Included test IDs in boolean-setting for settings labels. - Enhanced scripting-settings with test IDs for rule toggles. - Added test IDs in sidebar components for search fields and nodes. - Enhanced spec-view with test IDs for method buttons. - Included test IDs in tab components for tab titles. - Enhanced tags with test IDs for size, time, and URL tags. - Added test IDs in tag-editor for tag arguments. - Enhanced toast-notification with test IDs for toast body and content. - Included test IDs in response-headers-viewer for header rows and values. - Enhanced event-log-view with test IDs for event rows and cells. * feat: add remaining test ids for folder pane, staging button, drop indicator and test results - folder-pane on the request group Tabs - stage-this-file / unstage-this-file on the git staging preview button - drop-indicator-folder-name and data-valid on the sidebar drop indicator - test-result-case / test-result-error inside the test result name Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): add Playwright E2E framework, CI workflow and write-insomnia-test skill Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): add petstore fixture required by the echo server at startup misc/echo-server.js reads misc/fixtures/petstore-swagger.json when it starts, so the fixture must land together with the server; otherwise every shard's webServer exits with ENOENT. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): address PR review comments - bind mock-api and echo-server to 127.0.0.1 - remove per-test dataPath after use - throw when setCodeMirrorValue does not hold after retries - drop continue-on-error from the build job - shorten cookie waitForPersisted docstring Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat(insomnia-test): add mock servers referenced by constants and flows Adds the event-stream, socket.io, ws-echo, mcp, grpc, git, oauth2 and mock-bin servers (bound to 127.0.0.1), their proto/upload fixtures, npm scripts and Playwright webServer entries, so flows that reference them no longer fail with connection refused. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(insomnia-test): fix lint errors Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): send mock-bin-server responses as text/plain with nosniff Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): don't echo exception text in mock-bin-server 500 response Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): break flow-manager/workspace.flow import cycle WorkspaceFlow now takes a structural RequestFlows dependency instead of importing FlowManager, which removes the 3 new circular references. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): address Copilot review comments Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): rename Response model to ResponseView The type represents the response pane (response data plus console, stream events and script test results), not the network response, and clashed with the insomnia-data Response name. Update flows, pages, specs, JSDoc and the write-insomnia-test skill accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): split overloaded Flow methods into explicit ones WorkspaceFlow.create/duplicate/rename, ExportFlow.export and EnvironmentFlow.create dispatched on argument types via typeof/instanceof and casts, so a call site did not show which flow it triggered. Replace them with explicitly named methods (createProject, openLocalGitFolder, cloneGitProject, createCollection, duplicateRequest, renameCollection, exportProject, createBaseEnvironment, ...) and update the write-insomnia-test skill docs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): import expect directly from @playwright/test Drop the pass-through re-exports of expect from misc/fixtures.ts and misc/git-fixtures.ts, import it from @playwright/test in specs, and update the write-insomnia-test skill accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): rename certificate model and update imports * fix: update watcherExclude settings in VSCode configuration * chore: update .gitignore to remove test artifacts and add new file for insomnia-test * feat: update electron-builder config for E2E testing and add eslint config for insomnia-test * chore: remove unused file watcher exclusions from VSCode settings * chore: reorder import statements for consistency in response.page.ts * fix(insomnia-test): locate key/value rows by position to survive provisional key swap setKeyValuePairs resolved the new row by its data-key, which changes from the provisional pair-blank_* key to the persisted id once the name is saved. The value editor locator then never resolved, timing out in setCodeMirrorValue (template-tag header-name, http happy-path, query-params). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(request-page): ensure stable attribute before setting value to prevent data loss * fix(request-page): locate rows by fixed position to prevent stale locators during value entry * fix(insomnia-test): update shard count calculation to derive from test cases and improve node_modules handling * fix(reference): update request state terminology and clarify enum references in documentation * refactor(insomnia-test): consolidate framework changes into base PR Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(reference): update terminology from Response to ResponseView for consistency in documentation * feat(insomnia-test): add response export, folder environment, environment picker, variable-source and prompt-tag helpers Page/Flow helpers used by the HTTP, environment and template-tag specs: - ResponsePage/HttpRequestFlow: export response (raw/prettified/HTTP debug), Save To File, export option state - FolderPage/FolderFlow: set folder environment variables - EnvironmentPage/EnvironmentFlow: environment pickers, Add Project Environment, collection sub-environment privacy - VariableSourcePage/VariableSourceFlow: variable tooltip, source modal and Open navigation - TemplateTagPage/TemplateTagFlow: Prompt tag answer/clear cache - echo-server: /large-json route; PageManager passes the Electron app to ResponsePage Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat(insomnia-test): add page/flow methods, enums, models and mock-server endpoints used by later specs Framework-level additions moved from test/refactor_e2e_tests: git diff-view and unknown-fields helpers, MCP capability/list helpers, cloud-sync commit dialog helpers, upgrade fixture, MCP scriptable list server and custom-CA port, cloud-sync seed-project endpoint, certs typings and cookie Expires parsing. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Refactor code structure for improved readability and maintainability * fix(insomnia-test): address code-scanning findings in mock servers and git-sync page Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat(insomnia-test): add setParamsBulk to set request params via the bulk editor Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): sync framework-layer page object and coverage fixes Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): update SKILL.md and reference.md for linting and focus mode behavior * test(insomnia-test): add requireItemNode with DEFAULT_TIMEOUT and descriptive error Flows that dereference the tree lookup result with node! now use requireItemNode, which waits up to DEFAULT_TIMEOUT and throws naming the missing node. findItemNode keeps its short budget and undefined result for absence checks. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * ci(insomnia-test): align workflow with test-e2e.yml Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(test): clarify comments on worker configuration and session handling * feat(insomnia-test): add type-check script and workflow step * fix(insomnia-test): update node setup to include GitHub package registry and scope * chore(insomnia-test): address review cleanup items (#17-#27) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): update SKILL.md for improved test case writing guidance and remove outdated reference.md * feat: add mock servers for various protocols and OAuth2 support - Introduced `mock-bin-server.ts` for handling mock API requests and responses. - Added `oauth2-server.ts` to simulate OAuth2 authorization flows with in-memory token management. - Implemented `socket-server.ts` for WebSocket communication with authentication. - Created `ws-echo-server.ts` for echoing WebSocket messages. - Updated `upgrade-fixture.ts` to use `import.meta.dirname` for path resolution. - Modified `package.json` to switch script files from `.js` to `.ts` for TypeScript compatibility. - Adjusted Playwright configuration to reference TypeScript files for mock servers. - Enhanced cloud sync mock to reflect changes in file extensions. - Updated TypeScript configuration to allow importing TypeScript extensions. * refactor(insomnia-test): migrate electron-builder config to TypeScript and remove outdated CJS version * fix(insomnia-test): update ESLint config to include electron-builder.config.ts and clarify root config error * refactor: update button locators to use role and test ID selectors - Replaced various button locators using text matching with role and test ID selectors across multiple pages for improved accessibility and maintainability. - Updated methods in GitSyncPage, GrpcRequestPage, HttpRequestPage, ImportPage, InvitePage, McpClientPage, MockServerPage, PreferencesPage, ProjectSettingsPage, RequestPage, ResponsePage, RunnerPage, ScriptTabComponent, SocketIORequestPage, TemplateTagPage, VariableSourcePage, and WorkspacePage. - Enhanced code readability and consistency by standardizing locator strategies. * feat: add step instrumentation for flow methods - Introduced a new `step` decorator to enhance method reporting in flows. - Removed the old step instrumentation logic from `step-instrumentation.ts`. - Updated various flow classes to utilize the new `@step()` decorator for method tracking. - Simplified page manager by removing the instrumentWithSteps function. - Adjusted tests to ensure compatibility with the new step reporting mechanism. * refactor: remove module type from package.json and update environment type handling * test: verify logging of after-response script in HTTP request flow * fix: make Insomnia binary and helper executables executable to prevent EACCES errors * feat: add shard matrix job to dynamically calculate test distribution for parallel execution * fix: improve tree row expansion logic to handle re-rendering issues * fix: enhance expandAllCollapsed method documentation for clarity on toggle behavior * refactor: update RequestAuthentication imports and definitions for consistency across models * feat: add new components for UI interactions and refactor existing pages - Introduced `TabsComponent`, `StatusTagComponent`, `PillTagComponent`, `ToastComponent`, `ToggleButtonComponent`, `PressedToggleComponent`, `EnabledLabelToggleComponent`, `SwitchComponent`, `CheckboxComponent`, `RadioGroupComponent`, `TooltipComponent`, and `TreeComponent` to enhance UI testing capabilities with Playwright. - Refactored `AuthTabComponent`, `BasePage`, `CertificatesPage`, `CloudSyncPage`, `EnvironmentPage`, `HttpRequestPage`, `MockServerPage`, `RequestPage`, `ResponsePage`, `TabPanelPage`, and `WorkspacePage` to utilize new components for improved readability and maintainability. - Updated methods for toggling states, reading values, and interacting with UI elements to leverage the new component structure. - Enhanced test reliability by ensuring interactions are properly awaited and validated. * refactor: sync product test ids and e2e framework changes from test/refactor_e2e_tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * feat: add data-selected attributes for improved testing and UI state indication * feat: add Preferences dialog pages for AI settings, credentials, plugins, and vault management - Implemented GitHistoryDialogPage for managing git history modal interactions. - Created PreferencesAiPage for handling AI settings, including backend configuration and model selection. - Developed PreferencesCredentialsPage for managing Git and cloud credentials. - Added PreferencesPluginsPage for plugin management, including installation and sandbox settings. - Introduced PreferencesVaultPage for vault key generation and management. - Established PreferencesTabPage as a base class for shared functionality across preferences pages. * refactor: simplify requireItemNode and related methods by removing unnecessary polling * feat: implement flow and page registries for improved lazy loading of instances * feat: refactor data handling and polling mechanisms for improved stability and performance * feat: refactor flow management to use SessionContext for improved state handling * refactor: read graphql root types via unique test ids Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix: use unique test ids for graphql explorer root types Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor: drop pinned-request special case when rebuilding sidebar tree Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor: update selection logic to use data-selected attribute for diff view and primitive selection * refactor: replace NeDB file access with database queries for improved reliability * refactor: update import paths to use absolute imports from @package - Changed import statements across multiple files to use absolute paths from the @package alias instead of relative paths. - This improves code readability and maintainability by standardizing the import structure. * docs: add README for insomnia-test with E2E testing details * refactor: update import paths for constants and fixtures in happy-path.spec.ts * refactor: streamline file dialog stubbing across components and flows * refactor: enhance GitHub Actions permissions and add artifact cleanup step * refactor: simplify Playwright test execution and enhance coverage report handling * ci(insomnia-test): print playwright --list output when test count cannot be determined Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor: replace createSubEnvironment with addAndRenameSubEnvironment for improved clarity and functionality * refactor(insomnia-test): organise ResponseView by response pane areas Replace the AppResponse-derived fields with statusBar, preview, headers, console, events and tests so assertions map to what the user sees. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): use @package alias for cross-directory imports Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * style(insomnia-test): sort imports after switching to @package alias Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): replace hardcoded IDs with constants in mock-api * refactor(insomnia-test): update SKILL.md for improved clarity and consistency in framework facts * refactor(insomnia-test): enhance listbox locator in SelectComponent and improve textarea selection in VariableSourcePage * refactor(insomnia-test): update timeout handling in Tree class to use LONG_TIMEOUT for better reliability * feat(insomnia-test): add resolving-proxy-server mock facility Forward proxy on :4095 that maps insomnia.test to 127.0.0.1 (http directly, https via CONNECT). Lets specs reach the local mock servers without using `localhost`, which Insomnia treats as a secure context for Secure cookies. Started automatically through playwright.config.ts webServer. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): move cloud-sync-mock helper into misc It wraps mock-api admin endpoints like the other shared helpers in misc/, and tests/ should only hold specs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): update locators to use `Locator` type and improve dialog handling * fix(insomnia-test): fix lint errors and warnings in page objects Add a CommonJS override for plugin fixtures, drop force clicks and waitForTimeout from page objects, and avoid expect().catch(). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): enhance editable name handling with retry logic for stability * refactor(insomnia-test): update shard calculation to cap at MAX_SHARDS for better resource management * refactor(insomnia-test): update parallel-test job description for clarity on shard usage * refactor(insomnia-test): update timeout handling and constants for improved stability and resource management * feat(tests): add various E2E tests for cloud sync and workspace functionalities * feat(tests): add E2E tests for spectral lint error handling in JSON and YAML specs * feat(tests): enhance spectral lint error tests with project node verification * test(insomnia-test): move unused page objects, components and models to e2e-2 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): keep only members referenced by e1 tests in components/enums/flows/models/pages Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): drop empty flow/page classes and tidy blank lines Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): move cloud-sync and document specs out of e2e-1 and prune unused code Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): drop page registry entries, pages and members not used by e2e-1 specs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(insomnia-test): drop non-HTTP request models and unions unused by e2e-1 specs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor: reorganize FlowContext imports and introduce SessionContext for shared state management * fix: limit response delay to maximum threshold in delayResponse function * chore: move write-insomnia-test skill to test/refactor_e2e_tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore: move insomnia-test README to test/refactor_e2e_tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix: add permissions for package access and improve dependency installation in shard matrix job * fix: streamline delayResponse function to ensure valid delay handling * refactor: simplify ContextMenuItem enum by removing comments and consolidating labels * fix: remove baseUrl from tsconfig.json to streamline module resolution * refactor(insomnia-test): prune misc code not used by e2e-1 tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): address review feedback on deps, coverage and video - align dependency versions with the rest of the monorepo (express ^4, zod ^3, graphql ^16, @types/node ^24, @modelcontextprotocol/sdk ^1.17.5) and regenerate package-lock.json - make CI coverage on-demand: always on for develop pushes, opt-in via the workflow_dispatch `coverage` input otherwise - drop video recording (and the ffmpeg install); start Electron window tracing explicitly and attach trace.zip on failure instead Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): replace the standalone mock servers with the smoke-test mock server Remove the misc/*-server.ts scripts and their per-server webServer entries. Run a single mock server (misc/server), copied from insomnia-smoke-test and adapted to native-ESM node (import.meta.dirname, .ts imports, generated certs, no cross-package imports). Additions on top of the smoke server: misc/server/mock-api.ts (account and session state, _admin hooks, Cloud Sync GraphQL, vault, collaborators; runs as middleware and falls through), an httpbin-style /post, a catch-all 200 {} and socket.io moved to :3000. HTTP_SERVER now points at the single server. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor: replace hardcoded authorization header with dynamic base64 encoding * fix(insomnia-test): address code-scanning alerts in the mock server - send text/plain and JSON responses instead of reflecting user input as HTML - use a constant format string when logging GraphQL operations - rate limit the git routes that touch the file system - document why the mTLS test server skips client cert rejection Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): bump express-rate-limit to drop vulnerable ip-address Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * refactor(insomnia-test): move shared tab panes and preferences dialog to components Address review feedback: auth-tab, script-tab and tab-panel are reused by several pages, and the Preferences dialog is reachable from any page, so they belong in the component layer rather than pages. - TabPanelPage -> TabPanelComponent (RequestPage now composes it) - AuthTabComponent / ScriptTabComponent move to components/ - Preferences{,Tab,Credentials,Plugins,Ai}Page -> *Component, registered in PageManager under preferences / preferencesCredentials / ... Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(insomnia-test): set response type to text/plain for delay endpoint * chore(insomnia-test): remove unused fixture files --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>