# test-examiner

> Test generator for javaScript

Latest version **1.0.2** (published 2019-12-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install test-examiner
pnpm add test-examiner
yarn add test-examiner
bun add test-examiner
```

Provides the commands `exam`, `examInit`.

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: insecure dependencies; abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2019-12-10 |
| First published | 2019-11-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 448.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | beatlejute |
| Maintainers | beatlejute |
| Keywords | test, generator |

## Links

- npm: https://www.npmjs.com/package/test-examiner
- Repository: https://github.com/beatlejute/examiner
- Homepage: https://github.com/beatlejute/examiner#readme
- Issues: https://github.com/beatlejute/examiner/issues
- npm.io page: https://npm.io/package/test-examiner

## Dependencies (4)

- [ts-node](https://npm.io/package/ts-node.md) ^8.5.4
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [config-js](https://npm.io/package/config-js.md) ^1.1.13
- [amd-loader](https://npm.io/package/amd-loader.md) git+https://github.com/beatlejute/node-amd-loader.git

## Alternatives

- [duck](https://npm.io/package/duck.md) — 4.2M weekly downloads
- [ava](https://npm.io/package/ava.md) — 560.2K weekly downloads
- [storybook-addon-module-mock](https://npm.io/package/storybook-addon-module-mock.md) — 71.7K weekly downloads
- [vest](https://npm.io/package/vest.md) — 50.1K weekly downloads
- [@ethereum-waffle/mock-contract](https://npm.io/package/@ethereum-waffle/mock-contract.md) — 40.0K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2019-12-10
- 1.0.1 — 2019-12-09
- 1.0.0 — 2019-11-27

## README

#examiner

Test generator for javaScript.


# usage

For CLI using you can run in project root:

```
NODE_PATH=./ exam
```

Argument options:

* `--module` or `--m` - name of module for test generated.
* `--function` or `--f` - name of function for test generated.
* `--arguments` or `--a` - stringify input arguments object for test generated.
* `--amd-loader` - if you use AMD modules.


#example

```
NODE_PATH=./ exam --amd-loader --m=P2P/candidates-finder --f=getSpeed --a='{"0":{"id":"defc80d7-2645-4e85-88d9-02b6d7ae7858","type":"peer","connectionType":"webrtc","netInfo":[{"ip":"37.79.221.42","isGrey":false,"kind":"srflx"},{"ip":"10.66.14.50","isGrey":true,"kind":"host"},{"ip":"172.18.0.1","isGrey":true,"kind":"host"},{"ip":"172.19.0.1","isGrey":true,"kind":"host"}],"sources":{"main":{"latency":0},"reserve":{"latency":null}},"fallbackState":false,"relayCfg":{"connectionsLimit":{"wrtc":3,"ws":20},"sendMissedChunks":true},"depth":0}}'
```

Generated new test in /tests/generated/P2P/candidates-finder.js/getSpeed.spec.ts like:

```
import {assert, expect} from "chai";
import {getSpeed} from "../../../../P2P/candidates-finder.js";
import {mock} from "../../../../../test/generated/mocks/P2P/candidates-finder.js/getSpeed";
const mockArr: any = Object.values(mock).filter((e) => typeof e === "object");


describe("test describe", () => {
    it("test it", () => {
        assert.equal(getSpeed.apply(this, Object.values(mockArr[0].input)) ,mockArr[0].output, "test message");
    });
});
```

You can generate command in browser debuger (stop in function), for example:
```
copy("NODE_PATH=./ exam --amd-loader --m=" + new Error().stack.split("\n")[1].split(location.host)[1].split(".js?")[0] + " --f=" + new Error().stack.split("\n")[1].split("(")[1].split(" ")[2] + " --a='" + JSON.stringify(arguments) + "'")
```
You can generate command in node.js (stop in function), for example:
```
"NODE_PATH=./ exam --m=" + new Error().stack.split("\n")[1].split(global.process.env.NODE_PATH)[1].split(".js:")[0] + " --f=" + new Error().stack.split("\n")[1].split("(")[1].split(" ")[2] + " --a='" + JSON.stringify(arguments) + "'"
```


#methods

```
var candidates_finder = require("P2P/candidates-finder");
var examiner = require("test-examiner");

//Decorator
var getSpeed = examiner.exam(candidates_finder.getSpeed, module);

//Run for create test
getSpeed({"id": "f79d47e3-08d9-4a84-9f85-09e8b22fe1b5","type": "peer","connectionType": "webrtc","netInfo": [{"ip": "37.79.221.42","isGrey": false,"kind": "srflx"}],"sources": {"main": {},"reserve": {}},"fallbackState": true,"relayCfg": {"connectionsLimit": {"wrtc": 3,"ws": 20},"sendMissedChunks": true},"depth": 0});
```

# install

With [npm](https://npmjs.org) do:

```
npm install -g test-examiner
```

For init examiner, go to your project root and do:
```
examInit
```

# license

MIT

---
_Source: https://npm.io/package/test-examiner · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
