https://github.com/parro-it/tape-async
A tiny wrapper around tape to simplify async testing.
https://github.com/parro-it/tape-async
Last synced: 9 months ago
JSON representation
A tiny wrapper around tape to simplify async testing.
- Host: GitHub
- URL: https://github.com/parro-it/tape-async
- Owner: parro-it
- License: mit
- Created: 2015-09-22T20:16:35.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-11-10T00:40:24.000Z (about 3 years ago)
- Last Synced: 2024-10-13T02:19:13.003Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 101 KB
- Stars: 32
- Watchers: 4
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# tape-async
[](https://greenkeeper.io/)
> A lite wrapper around [tape](https://github.com/substack/tape) to simplify async testing.
[](http://travis-ci.org/parro-it/tape-async)
[](https://npmjs.org/package/tape-async)
[](https://npmjs.org/package/tape-async)
# Installation
```bash
npm install -D tape-async
```
# Usage
## Use with `async-await`
```js
const test = require("tape-async");
const sleep = require("sleep-promise");
test("this test will successfully pass", async (t) => {
await sleep(100);
const a = await Promise.resolve(42);
t.equal(a, 42);
});
```
`tape-async` supports async-await syntax.
You are in charge of transpiling your test code.
## Use with `generators`
```js
const test = require("tape-async");
const sleep = require("sleep-promise");
test("this test will successfully pass", function* (t) {
const result = yield Promise.resolve(42);
t.equal(result, 42);
});
```
`tape-async` supports generators test to handle async code.
They run using [co](https://github.com/tj/co).
## It catches unhandled errors
```js
const test = require("tape-async");
test("this test will fail", () => {
setTimeout(() => {
throw new Error("unhandled");
}, 100);
});
```
Unhandled errors in your tests are automatically covered.
Test suite fails with a generic error message and a stack trace.
## It catches unhandled `Promise` rejections
```js
const test = require("tape-async");
test("this test will fail", () => {
Promise.reject(new Error("unhandled"));
});
```
Uncatched Promise rejections in your tests are automatically covered.
Test suite fails with a generic error message and a stack trace.
## It supports every [tape](https://github.com/substack/tape) features.
```js
const test = require("tape-async");
test.skip("this test will be skipped", () => {});
test.only("this test will be the only one", (t) => {
t.equal(42, 42);
t.end();
});
```
Since this is only a tiny wrapper around `tape`, you can
use every feature you are used to.
# Related projects
- [tape](https://github.com/substack/tape) - tap-producing test harness for node and browsers.
- [tape-await](https://ghub.io/tape-await) - another async tape implementation.
# License
The MIT License (MIT)
Copyright (c) 2016 Andrea Parodi