Skip to content

Commit b27c462

Browse files
committed
fix(koa-better-body): switch to use supertest#end in tests
Signed-off-by: Charlike Mike Reagent <opensource@tunnckocore.com>
1 parent 87d77a6 commit b27c462

File tree

7 files changed

+450
-313
lines changed

7 files changed

+450
-313
lines changed

packages/koa-better-body/test/buffer.js

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77

88
import isBuffer from 'is-buffer';
99
import request from 'supertest';
10-
import koa from 'koa';
10+
import Koa from 'koa';
1111
import betterBody from '../src';
1212

13+
function koa() {
14+
return new Koa();
15+
}
16+
1317
test('should get the raw buffer body (options.buffer: true)', async () => {
1418
const server = koa().use(betterBody({ buffer: true }));
1519

@@ -19,22 +23,28 @@ test('should get the raw buffer body (options.buffer: true)', async () => {
1923
this.body = this.request.body.toString('utf8');
2024
});
2125

22-
await request(server.callback())
23-
.post('/')
24-
.type('text')
25-
.send('qux')
26-
.expect(200)
27-
.expect('qux');
26+
await new Promise((resolve, reject) => {
27+
request(server.callback())
28+
.post('/')
29+
.type('text')
30+
.send('qux')
31+
.expect(200)
32+
.expect('qux')
33+
.end((err) => (err ? reject(err) : resolve()));
34+
});
2835
});
2936

3037
test('should throw if the buffer body is too large (options.buffer: true)', async () => {
3138
const server = koa().use(betterBody({ buffer: true, bufferLimit: '2b' }));
3239

33-
await request(server.callback())
34-
.post('/')
35-
.type('text')
36-
.send('too large')
37-
.expect(413);
40+
await new Promise((resolve, reject) => {
41+
request(server.callback())
42+
.post('/')
43+
.type('text')
44+
.send('too large')
45+
.expect(413)
46+
.end((err) => (err ? reject(err) : resolve()));
47+
});
3848
});
3949

4050
test('should get json if `options.buffer` is false (that is the default)', async () => {
@@ -45,9 +55,12 @@ test('should get json if `options.buffer` is false (that is the default)', async
4555
this.body = this.request.fields;
4656
});
4757

48-
await request(server.callback())
49-
.post('/')
50-
.send('too large')
51-
.expect(200)
52-
.expect(/"too large":/);
58+
await new Promise((resolve, reject) => {
59+
request(server.callback())
60+
.post('/')
61+
.send('too large')
62+
.expect(200)
63+
.expect(/"too large":/)
64+
.end((err) => (err ? reject(err) : resolve()));
65+
});
5366
});

packages/koa-better-body/test/custom.js

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,31 @@
66
*/
77

88
import request from 'supertest';
9-
import koa from 'koa';
9+
import Koa from 'koa';
1010
import betterBody from '../src';
1111

12-
test('should accept opts.extendTypes.custom `foo/bar-x` as text', async () => {
13-
let app = koa().use(
14-
betterBody({
15-
extendTypes: {
16-
custom: ['foo/bar-x'],
17-
},
12+
function koa() {
13+
return new Koa();
14+
}
1815

19-
handler: function* handler(ctx, opts) {
20-
expect(typeof ctx).toStrictEqual('object');
21-
expect(typeof this).toStrictEqual('object');
22-
expect(typeof ctx.request.text).toStrictEqual('function');
23-
expect(typeof this.request.text).toStrictEqual('function');
16+
test('should accept opts.extendTypes.custom `foo/bar-x` as text', async () => {
17+
const server = koa()
18+
.use(
19+
betterBody({
20+
extendTypes: {
21+
custom: ['foo/bar-x'],
22+
},
2423

25-
this.request.body = yield this.request.text(opts);
26-
},
27-
}),
28-
);
24+
handler: function* handler(ctx, opts) {
25+
expect(typeof ctx).toStrictEqual('object');
26+
expect(typeof this).toStrictEqual('object');
27+
expect(typeof ctx.request.text).toStrictEqual('function');
28+
expect(typeof this.request.text).toStrictEqual('function');
2929

30-
app = app
30+
this.request.body = yield this.request.text(opts);
31+
},
32+
}),
33+
)
3134
.use(function* abc(next) {
3235
expect(this.request.body).toStrictEqual('message=lol');
3336
this.body = this.request.body;
@@ -38,10 +41,13 @@ test('should accept opts.extendTypes.custom `foo/bar-x` as text', async () => {
3841
expect(this.body).toStrictEqual('message=lol');
3942
});
4043

41-
await request(app.callback())
42-
.post('/')
43-
.type('foo/bar-x')
44-
.send('message=lol')
45-
.expect(200)
46-
.expect('message=lol');
44+
await new Promise((resolve, reject) => {
45+
request(server.callback())
46+
.post('/')
47+
.type('foo/bar-x')
48+
.send('message=lol')
49+
.expect(200)
50+
.expect('message=lol')
51+
.end((err) => (err ? reject(err) : resolve()));
52+
});
4753
});

packages/koa-better-body/test/json.js

Lines changed: 51 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,54 +6,78 @@
66
*/
77

88
import request from 'supertest';
9-
import koa from 'koa';
9+
import Koa from 'koa';
1010
import betterBody from '../src';
1111

12+
function koa() {
13+
return new Koa();
14+
}
15+
1216
function postBody() {
1317
return function* sasa(next) {
1418
this.body = this.request.fields;
1519
yield* next;
1620
};
1721
}
1822

19-
const app = koa()
20-
.use(betterBody())
21-
.use(postBody());
22-
2323
test('should parse a json body', async () => {
24-
await request(app.callback())
25-
.post('/')
26-
.send({ foo: 'lol' })
27-
.expect(200)
28-
.expect({ foo: 'lol' });
24+
const server = koa()
25+
.use(betterBody())
26+
.use(postBody());
27+
28+
await new Promise((resolve, reject) => {
29+
request(server.callback())
30+
.post('/')
31+
.send({ foo: 'lol' })
32+
.expect(200)
33+
.expect({ foo: 'lol' })
34+
.end((err) => (err ? reject(err) : resolve()));
35+
});
2936
});
3037

3138
test('should parse a string json body', async () => {
32-
await request(app.callback())
33-
.post('/')
34-
.type('application/json')
35-
.send('{"fao":"nato"}')
36-
.expect(200)
37-
.expect({ fao: 'nato' });
39+
const server = koa()
40+
.use(betterBody())
41+
.use(postBody());
42+
43+
await new Promise((resolve, reject) => {
44+
request(server.callback())
45+
.post('/')
46+
.type('application/json')
47+
.send('{"fao":"nato"}')
48+
.expect(200)
49+
.expect({ fao: 'nato' })
50+
.end((err) => (err ? reject(err) : resolve()));
51+
});
3852
});
3953

4054
test('should throw on json non-object body in strict mode (default)', async () => {
41-
await request(app.callback())
42-
.post('/')
43-
.type('json')
44-
.send('"lol"')
45-
.expect(400);
55+
const server = koa()
56+
.use(betterBody())
57+
.use(postBody());
58+
59+
await new Promise((resolve, reject) => {
60+
request(server.callback())
61+
.post('/')
62+
.type('json')
63+
.send('"lol"')
64+
.expect(400)
65+
.end((err) => (err ? reject(err) : resolve()));
66+
});
4667
});
4768

4869
test('should not throw on non-objects in non-strict mode', async () => {
4970
const server = koa()
5071
.use(betterBody({ jsonStrict: false }))
5172
.use(postBody());
5273

53-
await request(server.callback())
54-
.post('/')
55-
.type('json')
56-
.send('"foobar"')
57-
.expect(200)
58-
.expect(/foobar/);
74+
await new Promise((resolve, reject) => {
75+
request(server.callback())
76+
.post('/')
77+
.type('json')
78+
.send('"foobar"')
79+
.expect(200)
80+
.expect(/foobar/)
81+
.end((err) => (err ? reject(err) : resolve()));
82+
});
5983
});

0 commit comments

Comments
 (0)