# tundra-cli

> Tundra is a Javascript test data management utility to help streamline http data capture for end-to-end testing. The main goal is to help applications easily implement cold storage testing

Latest version **2.0.2** (published 2018-12-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install tundra-cli
pnpm add tundra-cli
yarn add tundra-cli
bun add tundra-cli
```

Provides the command `tundra`.

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.2 |
| Published | 2018-12-14 |
| First published | 2018-04-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 15 |
| Unpacked size | 4.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Tyler Murry |
| Maintainers | tylermurry |
| Keywords | tundra-cli, tundra, fetch, mock, interceptor, intercept |

## Links

- npm: https://www.npmjs.com/package/tundra-cli
- npm.io page: https://npm.io/package/tundra-cli

## Dependencies (15)

- [co](https://npm.io/package/co.md) ^4.6.0
- [ws](https://npm.io/package/ws.md) ^6.0.0
- [opn](https://npm.io/package/opn.md) ^5.4.0
- [cors](https://npm.io/package/cors.md) ^2.8.4
- [path](https://npm.io/package/path.md) ^0.12.7
- [chalk](https://npm.io/package/chalk.md) ^2.3.2
- [lodash](https://npm.io/package/lodash.md) ^4.17.5
- [express](https://npm.io/package/express.md) ^4.16.3
- [get-port](https://npm.io/package/get-port.md) ^4.0.0
- [co-prompt](https://npm.io/package/co-prompt.md) ^1.0.0
- [commander](https://npm.io/package/commander.md) ^2.15.1
- [body-parser](https://npm.io/package/body-parser.md) ^1.18.2
- [async-mkdirp](https://npm.io/package/async-mkdirp.md) ^1.2.4
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.26.0
- [string-similarity](https://npm.io/package/string-similarity.md) ^1.2.2

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 2.0.2 (latest) — 2018-12-14
- 2.0.1 — 2018-12-14
- 2.0.0 — 2018-10-18
- 2.0.0-beta.2 — 2018-09-29
- 2.0.0-beta.1 — 2018-09-27
- 1.0.2 — 2018-04-29
- 1.0.1 — 2018-04-11
- 1.0.0 — 2018-04-11

## README

# Tundra CLI

Tundra is a Javascript test data management utility to help streamline http data capture for end-to-end testing. The main goal is to help applications easily implement cold storage testing. To do this, Tundra uses a client-server model:

**Server**

The server listens for requests sent to it by the client and records the traffic in a specific profile.

**Client**

The client is embedded in the application and helps do two things:
* While executing a manual test runthrough, it will forward all commands sent to the the http library (e.g. fetch) to the Tundra server for offline storage.
* Additionally, when you're ready to execute an end-to-end test, the client will replay all http traffic back to the application.

## Try it out!

### Install the CLI Globally

`npm install -g tundra-cli`

### Choose an Adapter

Choose the right adapter based on the http library you use within your application:

| Http Library | Adapter |
| ------ | ------ |
| Fetch | `npm install tundra-fetch --save` |
| Axios | Coming Soon |

### Start the Tundra Server

Execute the following in a terminal at the root of your project: `tundra -d exampleProfile -f fixtures`
This will start a server at `http://localhost:9091/requests` to accept requests from an adapter.

| Parameter | Description |
| ------ | ------ |
| -p, --port | [default: 9091] The port of the Tundra server |
| -f, --fixtures-directory | [Optional] The directory of the `fixtures` folder in your project |

### Embed Tundra Adapter

Within your app, embed a compatible Tundra adapter

| Adapter | Documentation |
| ------ | ------ |
| Fetch | Coming Soon |
| Axios | Coming Soon |

### Run a Manual Test

With the server started and the client embedded and wiretapping in your application, you are all set. Simply run through your manual test with live data just as you normally would.

### Save Profile

When you are done with your manual test, go to the server console and enter the `stop` command. This will stop the server and store the http traffic in a .json file at `{fixturesDirectory}/profiles/{profileName}.json`.

### Done!

Nice. You can follow the instructions for your particular client/adapter to replay the traffic during an end-to-end test.

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