Files
insomnia/packages/insomnia-inso

Documentation

How to use Inso CLI.

Testing

# unit tests
npm run test:unit

# start smoke test api (required for e2e tests)
npm run serve -w insomnia-smoke-test

# e2e tests for dev bundle
npm run test:bundle

# e2e tests for binary
npm run test:binary

Development

Getting started

npm run inso-start
npm run test -w insomnia-inso
# will default to insomnia app database
$PWD/packages/insomnia-inso/bin/inso run test
# will use config, useful for testing with fewer args
$PWD/packages/insomnia-inso/bin/inso -w packages/insomnia-inso/src/db/fixtures/git-repo script runTest

node-libcurl

Error: The module '.../insomnia/node_modules/@getinsomnia/node-libcurl/lib/binding/node_libcurl.node' was compiled against a different Node.js version using

node-libcurl builds for 3 operating systems and two versions of nodejs. insomnia-inso uses the nodejs build and insomnia app uses the electron build. you can switch between them using the following two commands

# install node version
node_modules/.bin/node-pre-gyp install --update-binary --directory node_modules/@getinsomnia/node-libcurl
# install electron version
npm run install-libcurl-electron

Run CLI Smoke Tests

# Run CLI tests
npm run test:bundle -w insomnia-inso
# Package the Inso CLI binaries
npm run inso-package
npm run test:binary -w insomnia-inso

Debugging CLI tests using watcher

This is helpful for debugging failing api tests

From project root, in separate terminals:

# start smoke test api
npm run serve -w insomnia-smoke-test

# watch inso
npm run start -w insomnia-inso

# run api test with dev bundle. To debug run this in a Javascript Debug Terminal in VSCode
$PWD/packages/insomnia-inso/bin/inso run test "Echo Test Suite" -w $PWD/packages/insomnia-smoke-test/fixtures/inso-nedb --env Dev --verbose

How to debug pkg

# run modify package command and then a unit test
npm run package -w insomnia-inso && \
$PWD/packages/insomnia-inso/binaries/inso run test "Echo Test Suite" -w $PWD/packages/insomnia-smoke-test/fixtures/inso-nedb --env Dev --verbose

How to update the inso-nedb fixtures

Run Insomnia with INSOMNIA_DATA_PATH environment variable set to fixtures/inso-nedb, e.g.:

INSOMNIA_DATA_PATH=packages/insomnia-smoke-test/fixtures/inso-nedb /Applications/Insomnia.app/Contents/MacOS/Insomnia

Relaunch the app one more time, so that Insomnia compacts the database.

The .gitignore file will explicitly ignore certain database files, to keep the directory size down and avoid prevent sensitive data leaks.

How to run inso with the inso-nedb fixture locally?

Set the -w argument pointed to packages/insomnia-smoke-test/fixtures/inso-nedb:

# if installed globally
inso -w <INSO_NEDB_PATH>

# using the package bin
./packages/insomnia-inso/bin/inso -w <INSO_NEDB_PATH>

# using a binary
./packages/insomnia-inso/binaries/insomnia-inso -w <INSO_NEDB_PATH>

How to debug the bundled assets

DEBUG=1 npm run build

This will generate an artifacts directory containing information about the bundled assets. The meta.json can be uploaded to https://esbuild.github.io/analyze/ to visualize the bundle. The bundle-analysis.log can be used to see the dependency tree of the bundle.

How to generate documents about inso

  1. Ensure your node version matches the project .nvmrc perhaps with fnm use or another version manager.
  2. Run the script below, which will build inso in dev mode in order to use it to generate docs about itself
  3. The docs appear in your vscode diff, or you can look in ./packages/insomnia-inso/reference/ if the version number looks wrong you might need to check what branch you're on, it should be run from develop ideally as the only changes in the release branch should be hotfixes that dont affect inso docs
npm i && npm run build -w insomnia-inso && $PWD/packages/insomnia-inso/bin/inso generate-docs