- 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.
- 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.
- 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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
[INS-3831](https://konghq.atlassian.net/browse/INS-3831)
## Summary
- Extract `useRootLoaderData` + `RootLoaderData` from `src/root.tsx` into `src/ui/hooks/use-root-loader-data.ts`.
- Repoint all 65 importers from `~/root` to the new module, plus the two `vi.mock('~/root')` test stubs; remove the now-dead exports (and divergent stale shape) from root.tsx; annotate `clientLoader` return as `Promise<RootLoaderData>`.
- Hook return type keeps the documented `| undefined` contract of `useRouteLoaderData`.
## Why
root.tsx imports modals/settings/codemirror modules which import `useRootLoaderData` back — 55 of the 83 baselined cycles close through this single edge.