https://github.com/simplrjs/test-generator-cli
https://github.com/simplrjs/test-generator-cli
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/simplrjs/test-generator-cli
- Owner: SimplrJS
- License: mit
- Created: 2018-01-08T11:48:04.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-01T22:13:09.000Z (over 3 years ago)
- Last Synced: 2024-05-16T01:11:29.061Z (almost 2 years ago)
- Language: TypeScript
- Size: 69.3 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).