insomnia/packages/insomnia-smoke-test
James Gatz 5b7f45e910
Universal Insomnia/Git Sync for all files (documents/collections) (#5945)
* share design documents and tests with insomnia sync

* share collection and documents with insomnia/git sync

* checkpoint

* redirect when cloning (pulling) a new remote project

* backend workspace card

* redirect logic

* local changes styles

* loading indicator

* fix sync button styles

* use interval to refetch git

* open the repo modal first before switching to git sync

* use gitRepositoryId from metadata

* fix sync option update

* cleanup fetcher check

* fixes

* cleanup pull-push

* undo logo change

* clean git-vcs

* use cloud icon for insomnia sync

* cleanup card

* more cleanup

* better return type for fetchfetcher

* update git tests

* fix tests

* fix some prerelease tests

* fix cloning without an api spec

* fix some more tests that expect a file to exist

* fix lint error
2023-07-05 16:51:55 +00:00
..
cli cli flake timeout 20s (#6034) 2023-06-14 14:42:01 +00:00
docs/imgs [INS-2051] Reorganize smoke tests README (#5264) 2022-10-19 08:58:49 +01:00
fixtures Environment Editor PreRelease Smoke Tests (#5502) 2023-01-26 08:39:32 +00:00
playwright skip analytics in ci (#5385) 2022-11-04 17:32:12 +00:00
server Add better support for binary data on WebSocket connections (#5897) 2023-04-24 16:40:51 +00:00
tests Universal Insomnia/Git Sync for all files (documents/collections) (#5945) 2023-07-05 16:51:55 +00:00
.eslintignore
.eslintrc.js adds eslint-config-helpers (#3912) 2021-08-12 18:01:54 -04:00
.gitignore removes insomnia designer migration code (#4404) 2022-01-25 11:14:24 -05:00
.npmrc Chore: replace spectron with playwright (#4305) 2021-12-17 13:05:14 +01:00
CLI.md upgrade pkg (#6001) 2023-06-29 17:25:46 +02:00
jest.config.js chore(deps) updates (all but insomnia) to use @jest/globals (#4793) 2022-05-18 17:27:31 -04:00
package-lock.json chore: bump lerna v6 (#6096) 2023-07-05 13:22:52 +02:00
package.json Bump/pre-update-modules (#6087) 2023-07-05 08:57:13 +00:00
playwright.config.ts bump playwright to 1.30 canary (#5684) 2023-01-18 13:14:01 +02:00
README.md Add prerelease test for #5664 / INS-2267 (#5668) 2023-01-13 17:17:01 +01:00
tsconfig.build.json tsconfig cleanup (#4908) 2022-06-27 12:57:50 -04:00
tsconfig.json tsconfig cleanup (#4908) 2022-06-27 12:57:50 -04:00

Insomnia Smoke Tests

Playwright

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 run bootstrap

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.

editor

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.

refresh

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 inspector

Playwright Trace viewer

We generate Playwright Traces when tests run. These can be used to debug local and CI test failures.

playwright trace viewer

To open a local trace viewer for a given test output, run:

# Example:
npx playwright show-trace packages/insomnia-smoke-test/screenshots/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.

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 --prefix packages/insomnia-smoke-test -- preferences-interactions