Skip to content

SimplrJS/test-generator-cli

Repository files navigation

test-generator-cli

Tool to generate tests from cases.

Installation

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

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

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

and use it with npm-scripts.

Command line

Usage

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.

├── 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 expressions.

Supported expressions

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

Sample

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •