Skip to content

Commit da845f7

Browse files
committed
feat(server): support http server
1 parent 66ac53e commit da845f7

File tree

5 files changed

+52
-18
lines changed

5 files changed

+52
-18
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@
4040
},
4141
"dependencies": {
4242
"methods": "^1.1.2",
43-
"superagent": "^3.5.2"
43+
"superagent": "^3.8.1"
4444
}
4545
}

src/__test__/__snapshots__/index.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ exports[`channel get url 1`] = `
44
Object {
55
"data": undefined,
66
"headers": Object {
7-
"user-agent": "node-superagent/3.5.2",
7+
"user-agent": "node-superagent/3.8.1",
88
"x-api-key": "foobar",
99
},
1010
"method": "GET",

src/__test__/index.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import http from 'http';
12
import faker from 'faker';
23
import express from 'express';
34
import bodyParser from 'body-parser';
@@ -14,6 +15,17 @@ app.use((req, res) => {
1415
});
1516

1617
describe('channel', () => {
18+
it('get http server', async () => {
19+
const path = `/${faker.lorem.word()}`;
20+
const apiKey = faker.random.uuid();
21+
const req = superinstance(http.createServer(app), { set: { 'API-Key': apiKey } });
22+
const reply = await req.get(path);
23+
expect(reply.body).toEqual({ status: 'ok' });
24+
expect(monitor).toHaveBeenCalledWith(
25+
expect.objectContaining({ url: path, method: 'GET', headers: expect.objectContaining({ 'api-key': apiKey }) }),
26+
);
27+
});
28+
1729
it('get express', async () => {
1830
const path = `/${faker.lorem.word()}`;
1931
const apiKey = faker.random.uuid();

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ export default function (app, configs = {}) {
99
let url = app;
1010
let listen;
1111

12-
if (typeof app === 'function') {
13-
const server = http.createServer(app);
12+
if (typeof app === 'function' || typeof app === 'object') {
13+
const server = app.address ? app : http.createServer(app);
1414
const addr = server.address();
1515

1616
if (!addr) listen = server.listen(0);

yarn.lock

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,7 +1043,7 @@ cookie@0.3.1:
10431043
version "0.3.1"
10441044
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
10451045

1046-
cookiejar@^2.0.6:
1046+
cookiejar@^2.1.0:
10471047
version "2.1.1"
10481048
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"
10491049

@@ -1118,6 +1118,12 @@ debug@2.6.7:
11181118
dependencies:
11191119
ms "2.0.0"
11201120

1121+
debug@^3.1.0:
1122+
version "3.1.0"
1123+
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
1124+
dependencies:
1125+
ms "2.0.0"
1126+
11211127
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
11221128
version "1.2.0"
11231129
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1691,9 +1697,9 @@ forever-agent@~0.6.1:
16911697
version "0.6.1"
16921698
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
16931699

1694-
form-data@^2.1.1, form-data@~2.1.1:
1695-
version "2.1.4"
1696-
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
1700+
form-data@^2.3.1:
1701+
version "2.3.1"
1702+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
16971703
dependencies:
16981704
asynckit "^0.4.0"
16991705
combined-stream "^1.0.5"
@@ -1707,6 +1713,14 @@ form-data@~1.0.0-rc4:
17071713
combined-stream "^1.0.5"
17081714
mime-types "^2.1.11"
17091715

1716+
form-data@~2.1.1:
1717+
version "2.1.4"
1718+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
1719+
dependencies:
1720+
asynckit "^0.4.0"
1721+
combined-stream "^1.0.5"
1722+
mime-types "^2.1.12"
1723+
17101724
formidable@^1.1.1:
17111725
version "1.1.1"
17121726
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
@@ -2832,10 +2846,14 @@ mime@1.3.4:
28322846
version "1.3.4"
28332847
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
28342848

2835-
mime@^1.2.11, mime@^1.3.4:
2849+
mime@^1.2.11:
28362850
version "1.3.6"
28372851
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
28382852

2853+
mime@^1.4.1:
2854+
version "1.6.0"
2855+
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
2856+
28392857
min-document@^2.19.0:
28402858
version "2.19.0"
28412859
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
@@ -3283,10 +3301,14 @@ punycode@^1.4.1:
32833301
version "1.4.1"
32843302
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
32853303

3286-
qs@6.4.0, qs@^6.1.0, qs@~6.4.0:
3304+
qs@6.4.0, qs@~6.4.0:
32873305
version "6.4.0"
32883306
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
32893307

3308+
qs@^6.5.1:
3309+
version "6.5.1"
3310+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
3311+
32903312
qs@~6.2.0:
32913313
version "6.2.3"
32923314
resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
@@ -3869,19 +3891,19 @@ strip-json-comments@~2.0.1:
38693891
version "2.0.1"
38703892
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
38713893

3872-
superagent@^3.5.2:
3873-
version "3.5.2"
3874-
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.5.2.tgz#3361a3971567504c351063abeaae0faa23dbf3f8"
3894+
superagent@^3.8.1:
3895+
version "3.8.1"
3896+
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.1.tgz#2571fd921f3fcdba43ac68c3b35c91951532701f"
38753897
dependencies:
38763898
component-emitter "^1.2.0"
3877-
cookiejar "^2.0.6"
3878-
debug "^2.2.0"
3899+
cookiejar "^2.1.0"
3900+
debug "^3.1.0"
38793901
extend "^3.0.0"
3880-
form-data "^2.1.1"
3902+
form-data "^2.3.1"
38813903
formidable "^1.1.1"
38823904
methods "^1.1.1"
3883-
mime "^1.3.4"
3884-
qs "^6.1.0"
3905+
mime "^1.4.1"
3906+
qs "^6.5.1"
38853907
readable-stream "^2.0.5"
38863908

38873909
supports-color@^2.0.0:

0 commit comments

Comments
 (0)