Skip to content

Commit

Permalink
Add to README
Browse files Browse the repository at this point in the history
Signed-off-by: Tyler Ohlsen <ohltyler@amazon.com>
  • Loading branch information
ohltyler committed Jul 18, 2023
1 parent 12af9d2 commit 9072e28
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ You should have a running instance of OpenSearch Dashboards to run these tests a

### Installation

To install the dependencies run
To install the dependencies run

```
npm install
Expand Down Expand Up @@ -83,7 +83,7 @@ with security:
$ yarn cypress run-with-security --spec "cypress/integration/core-opensearch-dashboards/opensearch-dashboards/*.js"
```

These tests run in headless mode by default.
These tests run in headless mode by default.

And you can override certain [cypress config or environment variable](cypress.json) by applying additional cli arguments, for example to override the baseUrl and openSearchUrl to test a remote OpenSearch endpoint:

Expand All @@ -97,7 +97,6 @@ $ yarn cypress run --spec "cypress/integration/core-opensearch-dashboards/opense

`MANAGED_SERVICE_ENDPOINT`: set to true if tests are running against managed service domains.


## Writing tests

The testing library uses [Cypress](https://www.cypress.io/) as its testing framework and follow its high level folder structure. All tests are written under the `./cypress/integration` folder.
Expand All @@ -123,6 +122,13 @@ Tests for plugins that are not a part of the [OpenSearch Dashboards](https://git
/plugins
/<YOUR_PLUGIN_NAME>
```

### Tests with snapshots

[cypress-image-snapshot](https://github.com/jaredpalmer/cypress-image-snapshot) is a visual regression testing framework that can be used to persist snapshots & compare against them during test runs. This is very useful for checking elements that may not allow for easy validation via HTML elements, such as Vega visualizations which are a single black-box `canvas` element.

When writing new tests, to take a snapshot, you can pass the flag `--env updateSnapshots=true` into the command. This will take snapshots and store them under the `snapshots/` directory. To do comparisons against the snapshots later on, simply run without the flag. For further details, see the GitHub repository linked above.

### Experimental Features

When writing tests for experimental features, please follow these steps.
Expand All @@ -144,16 +150,19 @@ Create a new workflow by referring to [this template](https://github.com/opensea
To make the build repo enable your experimental feature when spinning up OSD service, make sure that you update [this file](https://github.com/opensearch-project/opensearch-build/blob/main/src/test_workflow/integ_test/service_opensearch_dashboards.py) You could either modify the start command or the yml file. To avoid a potentially long start command, it is preferred to modify the yml file to turn on the feature.

## General

### Formatting

`prettier` and `ESLint` is integrated and used to standardize formatting of files, where `prettier` takes care of the code formatting and `ESLint` takes care of the code style. You can check the formatting of all files (new and existing) by running

```
$ yarn lint
```

and auto fix the formatting of all files (new and existing) by running

```
$ yarn lint --fix
```

`Husky` precommit hook is used to automatically run `yarn lint`, please fix the files according to lint result before commiting code changes (run `yarn lint --fix` for fixable errors, or manully fix code according to error messages). If you have any doubts on `ESLint` rules, feel free to [open an issue](issues).
`Husky` precommit hook is used to automatically run `yarn lint`, please fix the files according to lint result before commiting code changes (run `yarn lint --fix` for fixable errors, or manully fix code according to error messages). If you have any doubts on `ESLint` rules, feel free to [open an issue](issues).

0 comments on commit 9072e28

Please sign in to comment.