Skip to content

Commit cd0ed1b

Browse files
committed
merge local changes with #114
2 parents d0e8889 + 3ddee00 commit cd0ed1b

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

lib/request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class REQUEST {
8787

8888
// Set the raw headers (normalize multi-values)
8989
// per https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
90-
this.rawHeaders = this._multiValueSupport && this.app._event.multiValueHeaders != null ?
90+
this.rawHeaders = this._multiValueSupport && this.app._event.multiValueHeaders !== null ?
9191
Object.keys(this.app._event.multiValueHeaders).reduce((headers,key) =>
9292
Object.assign(headers,{ [key]: UTILS.fromArray(this.app._event.multiValueHeaders[key]) }),{})
9393
: this.app._event.headers || {}

test/requests.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,31 @@ describe('Request Tests:', function() {
165165
expect(body.request.multiValueHeaders['test-header']).to.deep.equal(['val1','val2'])
166166
})
167167

168+
// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-test-method.html
169+
it('API Gateway Console Test event', async function() {
170+
let _event = require('./sample-event-consoletest1.json')
171+
let _context = require('./sample-context-apigateway1.json')
172+
let result = await new Promise(r => api.run(_event,_context,(e,res) => { r(res) }))
173+
let body = JSON.parse(result.body)
174+
// console.log(body);
175+
// console.log(body.request.multiValueHeaders);
176+
expect(body).to.have.property('request')
177+
expect(body.request.id).is.not.null
178+
expect(body.request.interface).to.equal('apigateway')
179+
expect(body.request).to.have.property('requestContext')
180+
expect(body.request.ip).to.equal('test-invoke-source-ip')
181+
expect(body.request.pathParameters).to.deep.equal({ "proxy": "test/hello" })
182+
expect(body.request.stageVariables).to.deep.equal({})
183+
expect(body.request.isBase64Encoded).to.equal(false)
184+
expect(body.request.clientType).to.equal('unknown')
185+
expect(body.request.clientCountry).to.equal('unknown')
186+
expect(body.request.route).to.equal('/test/hello')
187+
expect(body.request.query).to.deep.equal({})
188+
expect(body.request.multiValueQuery).to.deep.equal({})
189+
expect(body.request.headers).to.deep.equal({})
190+
// NOTE: body.request.multiValueHeaders is null in this case
191+
})
192+
168193
})
169194

170195
}) // end Request tests

test/sample-event-consoletest1.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"resource": "/{proxy+}",
3+
"path": "/test/hello",
4+
"httpMethod": "GET",
5+
"headers": null,
6+
"multiValueHeaders": null,
7+
"queryStringParameters": null,
8+
"multiValueQueryStringParameters": null,
9+
"pathParameters": {
10+
"proxy": "test/hello"
11+
},
12+
"stageVariables": null,
13+
"requestContext": {
14+
"path": "/{proxy+}",
15+
"accountId": "012345678900",
16+
"resourceId": "s1swyk",
17+
"stage": "test-invoke-stage",
18+
"domainPrefix": "testPrefix",
19+
"requestId": "3b5b1ca9-80ba-11e9-b4af-a3ad35996092",
20+
"identity": {
21+
"cognitoIdentityPoolId": null,
22+
"cognitoIdentityId": null,
23+
"apiKey": "test-invoke-api-key",
24+
"principalOrgId": null,
25+
"cognitoAuthenticationType": null,
26+
"userArn": "arn:aws:iam::012345678900:root",
27+
"apiKeyId": "test-invoke-api-key-id",
28+
"userAgent": "aws-internal/3 aws-sdk-java/1.11.534 Linux/4.9.137-0.1.ac.218.74.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.202-b08 java/1.8.0_202 vendor/Oracle_Corporation",
29+
"accountId": "012345678900",
30+
"caller": "012345678900",
31+
"sourceIp": "test-invoke-source-ip",
32+
"accessKey": "AAAAAAAAAAAAAAAAAAAA",
33+
"cognitoAuthenticationProvider": null,
34+
"user": "012345678900"
35+
},
36+
"domainName": "testPrefix.testDomainName",
37+
"resourcePath": "/{proxy+}",
38+
"httpMethod": "GET",
39+
"extendedRequestId": "aW9E_GA3PHcFX0A=",
40+
"apiId": "8gd934em46"
41+
},
42+
"body": null,
43+
"isBase64Encoded": false
44+
}

0 commit comments

Comments
 (0)