2020-08-24 22:13:29 +00:00
# Insomnia Smoke Tests
2022-10-19 07:58:49 +00:00
[![Playwright ](https://img.shields.io/badge/playwright-blue.svg?style=for-the-badge&logo=playwright )](https://github.com/microsoft/playwright)
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
This project contains the smoke testing suite for Insomnia App.
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
> To find more about Inso CLI smoke tests, check [this document](CLI.md).
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
- [Insomnia Smoke Tests ](#insomnia-smoke-tests )
- [Quick-start ](#quick-start )
- [Debugging and Developing Tests locally ](#debugging-and-developing-tests-locally )
- [Playwright VS Code extension ](#playwright-vs-code-extension )
- [Playwright Inspector ](#playwright-inspector )
- [Playwright Trace viewer ](#playwright-trace-viewer )
- [Additional Log levels ](#additional-log-levels )
- [Reproducing CI Failures ](#reproducing-ci-failures )
- [Getting traces from CI ](#getting-traces-from-ci )
- [Build and package methods ](#build-and-package-methods )
2023-01-13 16:17:01 +00:00
- [Non recurring tests ](#non-recurring-tests )
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
## Quick-start
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
Prerequisites:
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
- Clone the project
2023-08-09 22:14:16 +00:00
- Run `npm install`
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
To run all tests:
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
- In one terminal run: `npm run watch:app`
- In another terminal run: `npm run test:smoke:dev`
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
To run single tests:
2022-05-05 11:30:13 +00:00
2022-10-19 07:58:49 +00:00
- Filter by the file or test title, e.g. `npm run test:smoke:dev -- oauth`
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
## Debugging and Developing Tests locally
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
### Playwright VS Code extension
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
In order to run/debug tests directly from VS Code:
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
- Install the [Playwright extension ](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright ).
- With the extension installed, run on terminal `npm run watch:app` .
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
You can trigger tests from the `Testing` tab, or within the test files clicking the run button.
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
![editor ](docs/imgs/editor.png )
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
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.
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
![refresh ](docs/imgs/refresh.png )
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
### Playwright Inspector
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
You can step through tests with playwright inspector: `PWDEBUG=1 npm run test:smoke:dev`
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
This is also useful to help create new tests.
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
![playwright inspector ](docs/imgs/playwright-inspector.jpg )
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
### Playwright Trace viewer
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
We generate [Playwright Traces ](https://playwright.dev/docs/trace-viewer ) when tests run. These can be used to debug local and CI test failures.
2022-02-28 15:28:02 +00:00
2022-10-19 07:58:49 +00:00
![playwright trace viewer ](docs/imgs/playwright-trace.jpg )
2022-02-28 15:28:02 +00:00
2022-10-19 07:58:49 +00:00
To open a local trace viewer for a given test output, run:
2022-02-28 15:28:02 +00:00
```shell
2022-10-19 07:58:49 +00:00
# Example:
2023-08-10 15:53:18 +00:00
npx playwright show-trace packages/insomnia-smoke-test/traces/app-can-send-requests/trace.zip
2022-02-28 15:28:02 +00:00
```
2022-10-19 07:58:49 +00:00
Alternatively you can upload this trace to [trace.playwright.dev ](https://trace.playwright.dev/ ).
2022-02-18 12:47:41 +00:00
2022-10-19 07:58:49 +00:00
### Additional Log levels
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
You can enable additional logging to help you debug tests:
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
- 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`
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
## Reproducing CI Failures
2021-08-27 03:44:01 +00:00
2022-10-19 07:58:49 +00:00
### Getting traces from CI
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
Traces from CI execution can be found in the failed CI job's artifacts.
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
![artifacts ](docs/imgs/artifacts.png )
2020-12-17 11:54:30 +00:00
2022-10-19 07:58:49 +00:00
After downloading the artifacts, these can be extracted and loaded up into the [Trace viewer ](#playwright-trace-viewer ).
2022-03-16 12:05:12 +00:00
2022-10-19 07:58:49 +00:00
### Build and package methods
2022-03-16 12:05:12 +00:00
2022-10-19 07:58:49 +00:00
It's possible to run the smoke tests for:
2022-03-16 12:05:12 +00:00
2022-10-19 07:58:49 +00:00
- A `build` , the JS bundle that is loaded into an electron client
- A `package` , the executable binary (e.g. `.dmg` or `.exe` )
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
For `build` :
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
```shell
# Transpile js bundle
npm run app-build
2022-04-04 12:17:01 +00:00
2022-10-19 07:58:49 +00:00
# Run tests
npm run test:smoke:build
2022-03-16 12:05:12 +00:00
```
2022-10-19 07:58:49 +00:00
For `package` :
2021-10-06 22:01:43 +00:00
2022-10-19 07:58:49 +00:00
```shell
# Build executable in /packages/insomnia/dist
npm run app-package
2021-10-06 22:01:43 +00:00
2022-10-19 07:58:49 +00:00
# Run tests
npm run test:smoke:package
2021-10-06 22:01:43 +00:00
```
2022-10-19 07:58:49 +00:00
Each of the above commands will automatically run the Express server, so you do not need to take any extra steps.
2023-01-13 16:17:01 +00:00
### Non recurring tests
Non recurring / non-CI tests, like pre-release ones, can be run using [Playwright VS Code extension ](#playwright-vs-code-extension ) or by running `test:dev` against the desired test file:
```shell
2023-08-13 10:30:04 +00:00
npm run test:dev -w packages/insomnia-smoke-test -- preferences-interactions
2023-01-13 16:17:01 +00:00
```