557e5c0c6e
* project ui changes * project ui changes * create mock server model * model mock server similarly to design doc * use spec modelling and nav * layout pass * rename requestbin to mock-route * sidebar ui pass * load mock server * add url bar * can navigate to headers * Refactor mock server and mock route creation and retrieval * route crud * sidebar layout * add delete guuard * patch route * Add mock response tab to request pane * wire up mock servers in requests * Update mock server and route selection in RequestPane * make it work without internet * can create bin * pass body and headers to bin * can fetch logs but cant see em * split out response pane for hmr * basic table * extract mock url bar * add header tab * made a dumb cache * url bar pass * send request and create response * wire up timeline * wire up preview * timeline useeffect * move to action * fix types * empty states * rebase updating aria * use har type * can edit bins * cookie support * wire up status * status text * magic status text * ui * always use put rather than create bin * add url to mock route * scroll bar * add content types * validation * fix flake * improve logs * fix outlet warning * fix send to mock endpoint * switch table to grid * handle errors * rotate log * create mockbin on open if needed * add full url ux * reverse log order * binId from store * remove http method * rename prefix * use server Id for bin id * fix copy * show log har * fix url bar * fix button padding * tailwind * method select * remove default status text * full tailwind * fix breadcrumb * default to json * move copy to end, remove save * error msg * only patch when needed * fix ws colors * fix command palette * add isMock helper * revert local storage mechanism * fix redirect * fix ignore upsert * extract to constant * ui test * hide actions from mock-server * fix code editor onBlur * lift update to route * refactor to return only errors * add url to mock server model * select mock ui pass * can modify url in settings * use server url from db if selected * hide url option * fix lint error * extract to file * remove binResponse * can sync * move things around * rename name path sync * fix type check * capture kvp onBlur * fix error message * basic mock test * wire up mock patcher and navigate * rename component * remove url prop of route * fix lint * fix test * temporary skip e2e test * fix constant url * fix migration * remove console logs * rename function * only create a single hidden request --------- Co-authored-by: gatzjames <jamesgatzos@gmail.com> |
||
---|---|---|
.. | ||
cli | ||
docs/imgs | ||
fixtures | ||
playwright | ||
server | ||
tests | ||
.eslintignore | ||
.gitignore | ||
CLI.md | ||
jest.config.js | ||
package.json | ||
playwright.config.ts | ||
README.md | ||
tsconfig.build.json | ||
tsconfig.json |
Insomnia Smoke Tests
This project contains the smoke testing suite for Insomnia App.
To find more about Inso CLI smoke tests, check this document.
Quick-start
Prerequisites:
- Clone the project
- Run
npm install
To run all tests:
- In one terminal run:
npm run watch:app
- In another terminal run:
npm run test:smoke:dev
To run single tests:
- Filter by the file or test title, e.g.
npm run test:smoke:dev -- oauth
Debugging and Developing Tests locally
Playwright VS Code extension
In order to run/debug tests directly from VS Code:
- Install the Playwright extension.
- With the extension installed, run on terminal
npm run watch:app
.
You can trigger tests from the Testing
tab, or within the test files clicking the run button.
If no tests appear, you may need to run "Refresh playwright tests". This can be done from the command palette, or by using the button at the top of the Testing
tab.
Playwright Inspector
You can step through tests with playwright inspector: PWDEBUG=1 npm run test:smoke:dev
This is also useful to help create new tests.
Playwright Trace viewer
We generate Playwright Traces when tests run. These can be used to debug local and CI test failures.
To open a local trace viewer for a given test output, run:
# Example:
npx playwright show-trace packages/insomnia-smoke-test/traces/app-can-send-requests/trace.zip
Alternatively you can upload this trace to trace.playwright.dev.
Additional Log levels
You can enable additional logging to help you debug tests:
- Playwright logs:
DEBUG=pw:api npm run test:smoke:dev
- Insomnia console logs:
DEBUG=pw:browser npm run test:smoke:dev
- WebServer console logs:
DEBUG=pw:WebServer npm run test:smoke:dev
Reproducing CI Failures
Getting traces from CI
Traces from CI execution can be found in the failed CI job's artifacts.
After downloading the artifacts, these can be extracted and loaded up into the Trace viewer.
Build and package methods
It's possible to run the smoke tests for:
- A
build
, the JS bundle that is loaded into an electron client - A
package
, the executable binary (e.g..dmg
or.exe
)
For build
:
# Transpile js bundle
npm run app-build
# Run tests
npm run test:smoke:build
For package
:
# Build executable in /packages/insomnia/dist
npm run app-package
# Run tests
npm run test:smoke:package
Each of the above commands will automatically run the Express server, so you do not need to take any extra steps.
Non recurring tests
Non recurring / non-CI tests, like pre-release ones, can be run using Playwright VS Code extension or by running test:dev
against the desired test file:
npm run test:dev -w packages/insomnia-smoke-test -- preferences-interactions
Refresh certs
The certs might need to be replaced after 2026 to fix the custom ca cert test
mkcert -install
mkcert localhost
mkcert -CAROOT