An open API service indexing awesome lists of open source software.

https://github.com/simplrjs/test-generator-cli


https://github.com/simplrjs/test-generator-cli

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          






test-generator-cli

Tool to generate tests from cases.

## Installation

```sh
npm install @simplrjs/test-generator-cli -g
```

Global installation is not necessary. You can install this package with:

```sh
npm install @simplrjs/test-generator-cli --save-dev
```

and use it with [`npm-scripts`](https://docs.npmjs.com/misc/scripts).

## Command line

### Usage

```sh
test-generator-cli -h
```

### Arguments

| Argument | Type | Default | Description |
|-------------------------------|-----------|---------------------------|-------------------------------------------------------------------------------|
| -h, --help | boolean | `false` | Show help. |
| -v, --version | boolean | `false` | Show current version. |
| -p, --project | string | `./` | Project directory path. |

### Project tests structure

Let's say you picked `src` as your project directory.

```bash
├── src
└── tests
├── cases
│ ├── __tests__
│ | └── __snapshots__
│ ├── case-1
│ │ ├── ...
│ │ ├── test-config.json
│ │ └── case.test.tpl
│ └── case-2
└── default.test.tpl
```

| File / Directory | Description |
|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `__tests__` | Generated tests output directory. |
| `__snapshots__` | Generated tests snapshots directory. |
| `case-1`, `case-2` | Directories for test cases. |
| `case.test.tpl` | Test template file for certain test case. It's not required. If `case.test.tpl` not found in case directory, test template will fallback to `default.test.tpl`. |
| `test-config.json` | Config file for a test case. You can reach it template. Config structure is at your discretion. |
| `default.test.tpl` | Default test template file. |

### Templates

Package supports two kinds of templates:

* `case.test.tpl` - test template file for certain test case. It's not required. If `case.test.tpl` not found in case directory, test template will fallback to `default.test.tpl`.
* `default.test.tpl` - default test template file.

Template should be a valid TypeScript file that can have [Handlebars](http://handlebarsjs.com/) expressions.

#### Supported expressions

| Expression | Description |
|-------------------------|-------------------------------------------------------|
| `{{caseName}}` | Test case name. |
| `{{projectDirectory}}` | Project directory path. |
| `{{json testConfig}}` | Test case config file (`test-config.json`) content. |

#### Sample

```typescript
import * as path from "path";
import { Bundler } from "@src/bundler";

test("{{caseName}}", async done => {
const projectDirectory = "{{projectDirectory}}";
const testConfig = {{{json testConfig}}};
const entryFile = path.join(projectDirectory, testConfig.Entry);

try {
const bundleResult = await new Bundler()
.BundleAll([entryFile]);
expect(bundleResult[0].bundledContent).toMatchSnapshot();
done();
} catch (error) {
done.fail(error);
}
});
```

## License

Released under the [MIT license](LICENSE).