# jasmine-promise-tools

> Testing promises in Jasmine can be tricky and error-prone. This library has a few simple and general purpose functions to make it safer and easier to write async promise-based tests in Jasmine.

Latest version **1.1.0** (published 2017-03-21) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install jasmine-promise-tools
pnpm add jasmine-promise-tools
yarn add jasmine-promise-tools
bun add jasmine-promise-tools
```

## 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 | 1.1.0 |
| Published | 2017-03-21 |
| First published | 2016-06-14 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | dlaha, jbunton-atlassian, srijs |
| Keywords | jasmine, promise, testing, async, done |

## Links

- npm: https://www.npmjs.com/package/jasmine-promise-tools
- Repository: https://bitbucket.org/atlassianlabs/jasmine-promise-tools
- Homepage: https://bitbucket.org/atlassianlabs/jasmine-promise-tools#readme
- npm.io page: https://npm.io/package/jasmine-promise-tools

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 1.1.0 (latest) — 2017-03-21
- 1.0.6 — 2017-02-17
- 1.0.5 — 2016-08-11
- 1.0.4 — 2016-07-26
- 1.0.2 — 2016-06-14
- 1.0.0 — 2016-06-14

## README

![build-status](https://bitbucket-badges.atlassian.io/badge/atlassianlabs/jasmine-promise-tools.svg)

Testing promises in Jasmine can be tricky and error-prone. This library has a few simple and general purpose functions to make it safer and easier to write async promise-based tests in Jasmine.

# Functionality

All these functions provide detailed and helpful output in the case of a test failure.

* `willResolve` function converts a promise returning function into a Jasmine async function.
* `expectToReject` function fails the test if the promise resolves unexpectedly.
* `failTest` function returns a function which will fail a Jasmine async test.


# Example usage

It's recommended to add a Jasmine helper file so willResolve() and expectToReject() are available as globals for all your tests.

```
const {willResolve, expectToReject} = require('jasmine-promise-tools');

global.willResolve = willResolve;
global.expectToReject = expectToReject;
```


```
it('passes when a promise is resolved', willResolve(() => {
    return doThingAndSucceed()
        .then(() => {
            expect(1).toBe(1);
        });
}));

it('passes when you expect a promise to reject', willResolve(() => {
    const promise = doThingAndFail();

    return expectToReject(promise)
        .then((err) => {
            expect(err).toBe(42);
        });
}));
```


# Development guide

## Install dependencies

```
npm install
```


## Useful commands

```
# Run all checks
npm test

# Run just the jasmine tests
npm run test:jasmine

# Run just the linter
npm run test:lint
```


## Perform a release

```
npm version 99.98.97
npm publish
git push
git push --tags
```


## Contributors

Pull requests, issues and comments welcome. For pull requests:

* Add tests for new features and bug fixes
* Follow the existing style
* Separate unrelated changes into multiple pull requests

See the existing issues for things to start contributing.

For bigger changes, make sure you start a discussion first by creating an issue and explaining the intended change.

Atlassian requires contributors to sign a Contributor License Agreement, known as a CLA. This serves as a record stating that the contributor is entitled to contribute the code/documentation/translation to the project and is willing to have it used in distributions and derivative works (or is willing to transfer ownership).

* [CLA for corporate contributors](https://na2.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=e1c17c66-ca4d-4aab-a953-2c231af4a20b)
* [CLA for individuals](https://na2.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=3f94fbdc-2fbe-46ac-b14c-5d152700ae5d)


# License

Copyright (c) 2016 Atlassian and others.
Apache 2.0 licensed, see [LICENSE](LICENSE) file.

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