Skip to content

Commit

Permalink
Close #402 PR: add endpoint testing example to FAQ. Fixes #310
Browse files Browse the repository at this point in the history
  • Loading branch information
mattkrick authored and sindresorhus committed Jan 9, 2016
1 parent a2b282e commit 4d96a3e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
24 changes: 24 additions & 0 deletions docs/recipes/endpoint-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#Endpoint Testing

AVA doesn't have an official assertion library for endpoints, but a great option is [`supertest-as-promised`](https://github.com/WhoopInc/supertest-as-promised).
Since the tests run concurrently, it's a best practice to create a fresh server instance for each test because if we referenced the same instance, it could be mutated between tests. This can be accomplished with a `beforeEach` and `context`, or even more simply with a factory function:
```
function makeApp() {
const app = express();
app.post('/signup', signupHandler);
return app;
}
```

Next, just inject your server instance into supertest. The only gotcha is to use a promise or async/await syntax instead of supertest's `end` method:
```
test('signup:Success', async t => {
t.plan(2);
const app = makeApp();
const res = await request(app)
.post('/signup')
.send({email: 'ava@rocks.com', password: '123123'})
t.is(res.status, 200);
t.is(res.body.email, 'ava@rocks.com');
});
```
5 changes: 5 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Translations: [Español](https://github.com/sindresorhus/ava-docs/blob/master/es
- [API](#api)
- [Assertions](#assertions)
- [FAQ](#faq)
- [Recipes](#recipes)


## Why AVA?
Expand Down Expand Up @@ -699,6 +700,10 @@ AVA, not Ava or ava. Pronounced [`/ˈeɪvə/` ay-və](media/pronunciation.m4a?ra

Concurrency is not parallelism. It enables parallelism. [Learn more.](http://stackoverflow.com/q/1050222)

## Recipes

- [Endpoint testing](/docs/recipes/endpoint-testing.md)


## Support

Expand Down

0 comments on commit 4d96a3e

Please sign in to comment.