Skip to content

Commit

Permalink
[Cloud Posture] Update plugin README with info on testing (#146796)
Browse files Browse the repository at this point in the history
  • Loading branch information
orouz authored Dec 19, 2022
1 parent 3ecfa3d commit cc33a3c
Showing 1 changed file with 21 additions and 54 deletions.
75 changes: 21 additions & 54 deletions x-pack/plugins/cloud_security_posture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,81 +4,48 @@ Cloud Posture automates the identification and remediation of risks across cloud

---

## Table of contents

- [Development](#development)
- [Local checks before creating a PR](#local-checks-before-creating-a-pr)
- [Install pre-commit hooks (optional)](#install-pre-commit-hooks-optional)
- [Running unit tests](#running-unit-tests)
- [Running integration tests](#running-integration-tests)

---

## Development

See the [kibana contributing guide](https://github.com/elastic/kibana/blob/main/CONTRIBUTING.md) for instructions
setting up your development environment.
read [Kibana Contributing Guide](https://github.com/elastic/kibana/blob/main/CONTRIBUTING.md) for more details

### Local checks before creating a PR
## Testing

Kibana has a pretty long CI process.
Therefore, we suggest running the following commands locally before creating a PR:
read [Kibana Testing Guide](https://www.elastic.co/guide/en/kibana/current/development-tests.html) for more details

1. Typescript check: `node scripts/type_check.js --project=x-pack/plugins/cloud_security_posture/tsconfig.json`
2. Linter check: `yarn lint:es x-pack/plugins/cloud_security_posture`
3. Unit tests: `yarn jest --config x-pack/plugins/cloud_security_posture/jest.config.js`

### Install pre-commit hooks (optional)

We
use [pre-commit](https://docs.elastic.dev/kibana-dev-docs/getting-started/setup-dev-env#install-pre-commit-hook-optional)
to run linters and tests before each commit. To install the pre-commit hooks, run the following command from the root of
the repository:
Run **TypeScript**:

```bash
node scripts/register_git_hook
node scripts/type_check.js --project=x-pack/plugins/cloud_security_posture/tsconfig.json
```

### Running unit tests

Our [unit tests](https://docs.elastic.dev/kibana-dev-docs/tutorials/testing-plugins#unit-testing) are written
using [jest](https://jestjs.io/) framework.

As a convention, we use the `.test.ts` suffix for all our tests.

You can run all cloud security posture tests with the following command:
Run **ESLint**:

```bash
yarn jest --config x-pack/plugins/cloud_security_posture/jest.config.js
yarn lint:es x-pack/plugins/cloud_security_posture
```

To run a specific test, you can use the `--testNamePattern` flag:
Run **Unit Tests**:

```bash
yarn jest --config x-pack/plugins/cloud_security_posture/jest.config.js --testNamePattern=FilePattern -t MyTest
yarn test:jest --config x-pack/plugins/cloud_security_posture/jest.config.js
```

### Running integration tests

The cloud security posture plugin has
also [integration tests](https://docs.elastic.dev/kibana-dev-docs/tutorials/testing-plugins#integration-tests) that run
against a real Elasticsearch and Kibana instances.
We use these tests to verify that the plugin works as expected when running in a real environment.
In order to run the integration tests, you need to have a running Elasticsearch and Kibana instances with the
integration test configuration.
> **Note**
> for a coverage report, add the `--coverage` flag, and run `open target/kibana-coverage/jest/x-pack/plugins/cloud_security_posture/index.html`
You can run Kibana and Elastic with the integration test configuration by running the following command from the root of
the Kibana repository:
Run **API Integration**:

```bash
node scripts/functional_tests_server.js --config x-pack/test/api_integration/config.ts
yarn test:ftr --config x-pack/test/api_integration/config.ts
```

** You should wait until the server is ready to accept connections before running the integration tests.
Run **Functional UI Tests**:

```bash
yarn test:ftr --config x-pack/test/cloud_security_posture_functional/config.ts
```

Then, in a separate terminal, you can run the integration test.
In order to do so, run the following command:
<br/>

``` bash
node scripts/functional_test_runner.js --config x-pack/test/api_integration/config.ts --include=test_file_path
```
> **Note**
> in development, run them separately with `ftr:runner` and `ftr:server`

0 comments on commit cc33a3c

Please sign in to comment.