lesgo 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/bin/lesgo-scripts.sh +4 -4
- package/dist/config/app.d.ts +7 -0
- package/dist/config/app.js +9 -0
- package/dist/config/aws.d.ts +5 -0
- package/dist/config/aws.js +4 -0
- package/dist/config/basicAuth.d.ts +7 -0
- package/dist/config/basicAuth.js +8 -0
- package/dist/config/crypto.d.ts +10 -0
- package/dist/config/crypto.js +9 -0
- package/dist/config/dynamodb.d.ts +8 -0
- package/dist/config/dynamodb.js +14 -0
- package/dist/config/elasticache.d.ts +7 -0
- package/dist/config/elasticache.js +6 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.js +11 -0
- package/dist/config/jwt.d.ts +12 -0
- package/dist/config/jwt.js +16 -0
- package/dist/config/rds.d.ts +12 -0
- package/dist/config/rds.js +13 -0
- package/dist/config/s3.d.ts +5 -0
- package/dist/config/s3.js +5 -0
- package/dist/config/secretsManager.d.ts +4 -0
- package/dist/config/secretsManager.js +4 -0
- package/dist/config/sqs.d.ts +9 -0
- package/dist/config/sqs.js +18 -0
- package/dist/exceptions/LesgoException.d.ts +6 -0
- package/{src → dist}/exceptions/LesgoException.js +5 -4
- package/dist/exceptions/index.d.ts +1 -0
- package/dist/exceptions/index.js +1 -0
- package/dist/middlewares/disconnectMiddleware.d.ts +8 -0
- package/dist/middlewares/disconnectMiddleware.js +78 -0
- package/dist/middlewares/httpMiddleware.d.ts +12 -0
- package/dist/middlewares/httpMiddleware.js +74 -0
- package/dist/middlewares/httpResponseMiddleware.d.ts +7 -0
- package/dist/middlewares/httpResponseMiddleware.js +128 -0
- package/dist/middlewares/index.d.ts +7 -0
- package/dist/middlewares/index.js +7 -0
- package/dist/middlewares/invokeCommandMiddleware.d.ts +12 -0
- package/dist/middlewares/invokeCommandMiddleware.js +70 -0
- package/dist/middlewares/sqsMiddleware.d.ts +10 -0
- package/dist/middlewares/sqsMiddleware.js +70 -0
- package/dist/middlewares/verifyBasicAuthMiddleware.d.ts +8 -0
- package/dist/middlewares/verifyBasicAuthMiddleware.js +59 -0
- package/dist/middlewares/verifyJwtMiddleware.d.ts +6 -0
- package/dist/middlewares/verifyJwtMiddleware.js +37 -0
- package/dist/services/DynamoDbService/deleteRecord.d.ts +8 -0
- package/dist/services/DynamoDbService/deleteRecord.js +69 -0
- package/dist/services/DynamoDbService/getClient.d.ts +7 -0
- package/dist/services/DynamoDbService/getClient.js +30 -0
- package/dist/services/DynamoDbService/getTableName.d.ts +2 -0
- package/dist/services/DynamoDbService/getTableName.js +15 -0
- package/dist/services/DynamoDbService/index.d.ts +6 -0
- package/dist/services/DynamoDbService/index.js +6 -0
- package/dist/services/DynamoDbService/putRecord.d.ts +8 -0
- package/dist/services/DynamoDbService/putRecord.js +64 -0
- package/dist/services/DynamoDbService/query.d.ts +7 -0
- package/dist/services/DynamoDbService/query.js +78 -0
- package/dist/services/DynamoDbService/scan.d.ts +7 -0
- package/dist/services/DynamoDbService/scan.js +60 -0
- package/dist/services/DynamoDbService/updateRecord.d.ts +9 -0
- package/dist/services/DynamoDbService/updateRecord.js +89 -0
- package/dist/services/ElastiCacheRedisService/deleteRedisCache.d.ts +3 -0
- package/dist/services/ElastiCacheRedisService/deleteRedisCache.js +62 -0
- package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.d.ts +11 -0
- package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.js +69 -0
- package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.d.ts +12 -0
- package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.js +114 -0
- package/dist/services/ElastiCacheRedisService/getRedisCache.d.ts +3 -0
- package/dist/services/ElastiCacheRedisService/getRedisCache.js +70 -0
- package/dist/services/ElastiCacheRedisService/index.d.ts +5 -0
- package/dist/services/ElastiCacheRedisService/index.js +5 -0
- package/dist/services/ElastiCacheRedisService/setRedisCache.d.ts +6 -0
- package/dist/services/ElastiCacheRedisService/setRedisCache.js +77 -0
- package/dist/services/JWTService/decodeJwt.d.ts +7 -0
- package/dist/services/JWTService/decodeJwt.js +9 -0
- package/dist/services/JWTService/getJwtSecret.d.ts +13 -0
- package/dist/services/JWTService/getJwtSecret.js +54 -0
- package/dist/services/JWTService/index.d.ts +2 -0
- package/dist/services/JWTService/index.js +2 -0
- package/dist/services/JWTService/sign.d.ts +3 -0
- package/dist/services/JWTService/sign.js +31 -0
- package/dist/services/JWTService/verify.d.ts +7 -0
- package/dist/services/JWTService/verify.js +61 -0
- package/dist/services/LoggerService.d.ts +46 -0
- package/{src → dist}/services/LoggerService.js +29 -60
- package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.d.ts +2 -0
- package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.js +60 -0
- package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.d.ts +8 -0
- package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.js +87 -0
- package/dist/services/RDSAuroraMySQLProxyService/index.d.ts +3 -0
- package/dist/services/RDSAuroraMySQLProxyService/index.js +3 -0
- package/dist/services/RDSAuroraMySQLProxyService/query.d.ts +4 -0
- package/dist/services/RDSAuroraMySQLProxyService/query.js +63 -0
- package/dist/services/S3Service/getClient.d.ts +4 -0
- package/dist/services/S3Service/getClient.js +28 -0
- package/dist/services/S3Service/getDownloadSignedUrl.d.ts +7 -0
- package/dist/services/S3Service/getDownloadSignedUrl.js +58 -0
- package/dist/services/S3Service/getHeadObject.d.ts +13 -0
- package/dist/services/S3Service/getHeadObject.js +83 -0
- package/dist/services/S3Service/getObject.d.ts +10 -0
- package/dist/services/S3Service/getObject.js +89 -0
- package/dist/services/S3Service/getUploadSignedUrl.d.ts +7 -0
- package/dist/services/S3Service/getUploadSignedUrl.js +61 -0
- package/dist/services/S3Service/index.d.ts +6 -0
- package/dist/services/S3Service/index.js +6 -0
- package/dist/services/S3Service/putObject.d.ts +9 -0
- package/dist/services/S3Service/putObject.js +77 -0
- package/dist/services/SQSService/deleteMessage.d.ts +9 -0
- package/dist/services/SQSService/deleteMessage.js +69 -0
- package/dist/services/SQSService/dispatch.d.ts +9 -0
- package/dist/services/SQSService/dispatch.js +71 -0
- package/dist/services/SQSService/getClient.d.ts +4 -0
- package/dist/services/SQSService/getClient.js +28 -0
- package/dist/services/SQSService/getQueueUrl.d.ts +7 -0
- package/dist/services/SQSService/getQueueUrl.js +25 -0
- package/dist/services/SQSService/index.d.ts +4 -0
- package/dist/services/SQSService/index.js +4 -0
- package/dist/services/SQSService/receiveMessages.d.ts +8 -0
- package/dist/services/SQSService/receiveMessages.js +65 -0
- package/dist/services/SecretsManagerService/getClient.d.ts +7 -0
- package/dist/services/SecretsManagerService/getClient.js +28 -0
- package/dist/services/SecretsManagerService/getSecretValue.d.ts +7 -0
- package/dist/services/SecretsManagerService/getSecretValue.js +65 -0
- package/dist/services/SecretsManagerService/index.d.ts +2 -0
- package/dist/services/SecretsManagerService/index.js +2 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/types/aws.d.ts +8 -0
- package/dist/types/aws.js +1 -0
- package/dist/utils/cache/redis/deleteCache.d.ts +19 -0
- package/dist/utils/cache/redis/deleteCache.js +21 -0
- package/dist/utils/cache/redis/getCache.d.ts +22 -0
- package/dist/utils/cache/redis/getCache.js +24 -0
- package/dist/utils/cache/redis/getClient.d.ts +30 -0
- package/dist/utils/cache/redis/getClient.js +32 -0
- package/dist/utils/cache/redis/index.d.ts +4 -0
- package/dist/utils/cache/redis/index.js +4 -0
- package/dist/utils/cache/redis/setCache.d.ts +25 -0
- package/dist/utils/cache/redis/setCache.js +26 -0
- package/dist/utils/crypto/decrypt.d.ts +33 -0
- package/dist/utils/crypto/decrypt.js +59 -0
- package/dist/utils/crypto/encrypt.d.ts +31 -0
- package/dist/utils/crypto/encrypt.js +41 -0
- package/dist/utils/crypto/hash.d.ts +31 -0
- package/dist/utils/crypto/hash.js +56 -0
- package/dist/utils/crypto/index.d.ts +3 -0
- package/dist/utils/crypto/index.js +3 -0
- package/dist/utils/crypto/validateEncryptionFields.d.ts +19 -0
- package/dist/utils/crypto/validateEncryptionFields.js +71 -0
- package/dist/utils/db/mysql/proxy/disconnect.d.ts +2 -0
- package/dist/utils/db/mysql/proxy/disconnect.js +5 -0
- package/dist/utils/db/mysql/proxy/disconnectDb.d.ts +2 -0
- package/dist/utils/db/mysql/proxy/disconnectDb.js +5 -0
- package/dist/utils/db/mysql/proxy/getClient.d.ts +4 -0
- package/dist/utils/db/mysql/proxy/getClient.js +5 -0
- package/dist/utils/db/mysql/proxy/index.d.ts +3 -0
- package/dist/utils/db/mysql/proxy/index.js +3 -0
- package/dist/utils/db/mysql/proxy/query.d.ts +4 -0
- package/dist/utils/db/mysql/proxy/query.js +45 -0
- package/dist/utils/dynamodb/deleteRecord.d.ts +5 -0
- package/dist/utils/dynamodb/deleteRecord.js +39 -0
- package/dist/utils/dynamodb/getClient.d.ts +3 -0
- package/dist/utils/dynamodb/getClient.js +5 -0
- package/dist/utils/dynamodb/index.d.ts +6 -0
- package/dist/utils/dynamodb/index.js +6 -0
- package/dist/utils/dynamodb/putRecord.d.ts +4 -0
- package/dist/utils/dynamodb/putRecord.js +39 -0
- package/dist/utils/dynamodb/query.d.ts +5 -0
- package/dist/utils/dynamodb/query.js +52 -0
- package/dist/utils/dynamodb/scan.d.ts +4 -0
- package/dist/utils/dynamodb/scan.js +40 -0
- package/dist/utils/dynamodb/updateRecord.d.ts +5 -0
- package/dist/utils/dynamodb/updateRecord.js +53 -0
- package/dist/utils/formatUnixTimestamp.d.ts +8 -0
- package/dist/utils/formatUnixTimestamp.js +17 -0
- package/dist/utils/generateUid.d.ts +13 -0
- package/{src → dist}/utils/generateUid.js +9 -4
- package/dist/utils/getCurrentDatetime.d.ts +2 -0
- package/dist/utils/getCurrentDatetime.js +4 -0
- package/dist/utils/getCurrentTimestamp.d.ts +7 -0
- package/dist/utils/getCurrentTimestamp.js +9 -0
- package/dist/utils/getJwtSubFromAuthHeader.d.ts +9 -0
- package/dist/utils/getJwtSubFromAuthHeader.js +24 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/isDecimal.d.ts +8 -0
- package/dist/utils/isDecimal.js +9 -0
- package/dist/utils/isEmail.d.ts +9 -0
- package/{src → dist}/utils/isEmail.js +9 -4
- package/dist/utils/isEmpty.d.ts +8 -0
- package/dist/utils/isEmpty.js +19 -0
- package/dist/utils/jwt/index.d.ts +2 -0
- package/dist/utils/jwt/index.js +2 -0
- package/dist/utils/jwt/sign.d.ts +3 -0
- package/dist/utils/jwt/sign.js +5 -0
- package/dist/utils/jwt/verify.d.ts +3 -0
- package/dist/utils/jwt/verify.js +12 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.js +38 -0
- package/dist/utils/s3/getClient.d.ts +3 -0
- package/dist/utils/s3/getClient.js +5 -0
- package/dist/utils/s3/getDownloadSignedUrl.d.ts +5 -0
- package/dist/utils/s3/getDownloadSignedUrl.js +39 -0
- package/dist/utils/s3/getHeadObject.d.ts +10 -0
- package/dist/utils/s3/getHeadObject.js +39 -0
- package/dist/utils/s3/getObject.d.ts +13 -0
- package/dist/utils/s3/getObject.js +51 -0
- package/dist/utils/s3/getUploadSignedUrl.d.ts +5 -0
- package/dist/utils/s3/getUploadSignedUrl.js +39 -0
- package/dist/utils/s3/index.d.ts +6 -0
- package/dist/utils/s3/index.js +6 -0
- package/dist/utils/s3/putObject.d.ts +5 -0
- package/dist/utils/s3/putObject.js +39 -0
- package/dist/utils/secretsmanager/getClient.d.ts +3 -0
- package/dist/utils/secretsmanager/getClient.js +5 -0
- package/dist/utils/secretsmanager/getSecretValue.d.ts +4 -0
- package/dist/utils/secretsmanager/getSecretValue.js +68 -0
- package/dist/utils/secretsmanager/index.d.ts +2 -0
- package/dist/utils/secretsmanager/index.js +2 -0
- package/dist/utils/sqs/deleteMessage.d.ts +5 -0
- package/dist/utils/sqs/deleteMessage.js +39 -0
- package/dist/utils/sqs/dispatch.d.ts +5 -0
- package/dist/utils/sqs/dispatch.js +39 -0
- package/dist/utils/sqs/getClient.d.ts +3 -0
- package/dist/utils/sqs/getClient.js +5 -0
- package/dist/utils/sqs/index.d.ts +4 -0
- package/dist/utils/sqs/index.js +4 -0
- package/dist/utils/sqs/receiveMessages.d.ts +5 -0
- package/dist/utils/sqs/receiveMessages.js +39 -0
- package/dist/utils/validateFields.d.ts +22 -0
- package/{src → dist}/utils/validateFields.js +13 -19
- package/package.json +145 -34
- package/src/exceptions/__tests__/LesgoException.spec.js +0 -24
- package/src/exceptions/index.js +0 -4
- package/src/index.js +0 -4
- package/src/middlewares/__mocks__/ValidationErrorException.js +0 -18
- package/src/middlewares/__tests__/basicAuthMiddleware.spec.js +0 -264
- package/src/middlewares/__tests__/clientAuthMiddleware.spec.js +0 -235
- package/src/middlewares/__tests__/errorHttpResponseMiddleware.spec.js +0 -203
- package/src/middlewares/__tests__/gzipHttpResponse.spec.js +0 -185
- package/src/middlewares/__tests__/httpNoOutputMiddleware.spec.js +0 -201
- package/src/middlewares/__tests__/normalizeHttpRequestMiddleware.spec.js +0 -181
- package/src/middlewares/__tests__/normalizeSQSMessageMiddleware.spec.js +0 -120
- package/src/middlewares/__tests__/successHttpResponseMiddleware.spec.js +0 -172
- package/src/middlewares/__tests__/verifyJwtMiddleware.spec.js +0 -297
- package/src/middlewares/basicAuthMiddleware.js +0 -125
- package/src/middlewares/clientAuthMiddleware.js +0 -103
- package/src/middlewares/errorHttpResponseMiddleware.js +0 -101
- package/src/middlewares/gzipHttpResponse.js +0 -98
- package/src/middlewares/httpMiddleware.js +0 -19
- package/src/middlewares/httpNoOutputMiddleware.js +0 -91
- package/src/middlewares/index.js +0 -19
- package/src/middlewares/normalizeHttpRequestMiddleware.js +0 -101
- package/src/middlewares/normalizeSQSMessageMiddleware.js +0 -67
- package/src/middlewares/successHttpResponseMiddleware.js +0 -85
- package/src/middlewares/verifyJwtMiddleware.js +0 -73
- package/src/services/AuroraDbRDSProxyService.js +0 -182
- package/src/services/AuroraDbService.js +0 -111
- package/src/services/DynamoDbService.js +0 -177
- package/src/services/ElastiCacheService.js +0 -17
- package/src/services/ElasticsearchService.js +0 -181
- package/src/services/FirebaseAdminService.js +0 -108
- package/src/services/JwtService.js +0 -52
- package/src/services/S3Service.js +0 -59
- package/src/services/SQSService.js +0 -65
- package/src/services/__tests__/AuroraDbRDSProxyService.spec.js +0 -278
- package/src/services/__tests__/AuroraDbService.spec.js +0 -211
- package/src/services/__tests__/AwsElasticsearchConnection.spec.js +0 -89
- package/src/services/__tests__/DynamoDbService.spec.js +0 -314
- package/src/services/__tests__/ElasticsearchService.spec.js +0 -201
- package/src/services/__tests__/FirebaseAdminService.spec.js +0 -356
- package/src/services/__tests__/JwtService.spec.js +0 -35
- package/src/services/__tests__/LengthAwarePaginator.spec.js +0 -223
- package/src/services/__tests__/LoggerService.spec.js +0 -267
- package/src/services/__tests__/Paginator.spec.js +0 -383
- package/src/services/__tests__/S3Service.spec.js +0 -55
- package/src/services/__tests__/SQSService.spec.js +0 -47
- package/src/services/__tests__/SignedRequest.spec.js +0 -103
- package/src/services/aws/AwsElasticsearchConnection.js +0 -59
- package/src/services/aws/SignedRequest.js +0 -158
- package/src/services/index.js +0 -19
- package/src/services/pagination/LengthAwarePaginator.js +0 -49
- package/src/services/pagination/Paginator.js +0 -260
- package/src/utils/__mocks__/db.js +0 -109
- package/src/utils/__tests__/cache.spec.js +0 -131
- package/src/utils/__tests__/crypto.spec.js +0 -122
- package/src/utils/__tests__/db.spec.js +0 -70
- package/src/utils/__tests__/dynamodb.spec.js +0 -27
- package/src/utils/__tests__/elasticsearch.spec.js +0 -43
- package/src/utils/__tests__/generateUid.spec.js +0 -36
- package/src/utils/__tests__/getJwtSubFromAuthHeader.spec.js +0 -20
- package/src/utils/__tests__/isDecimal.spec.js +0 -12
- package/src/utils/__tests__/isEmail.spec.js +0 -28
- package/src/utils/__tests__/isEmpty.spec.js +0 -31
- package/src/utils/__tests__/logger.spec.js +0 -11
- package/src/utils/__tests__/objectStore.spec.js +0 -67
- package/src/utils/__tests__/prepSQLInsertParams.spec.js +0 -46
- package/src/utils/__tests__/prepSQLUpdateParams.spec.js +0 -36
- package/src/utils/__tests__/queue.spec.js +0 -54
- package/src/utils/__tests__/validateFields.spec.js +0 -374
- package/src/utils/cache.js +0 -215
- package/src/utils/crypto.js +0 -77
- package/src/utils/db.js +0 -17
- package/src/utils/dynamodb.js +0 -6
- package/src/utils/elasticsearch.js +0 -20
- package/src/utils/getJwtSubFromAuthHeader.js +0 -18
- package/src/utils/index.js +0 -26
- package/src/utils/isDecimal.js +0 -2
- package/src/utils/isEmpty.js +0 -6
- package/src/utils/logger.js +0 -25
- package/src/utils/objectStore.js +0 -11
- package/src/utils/prepSQLInsertParams.js +0 -21
- package/src/utils/prepSQLUpdateParams.js +0 -25
- package/src/utils/queue.js +0 -11
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
errorHttpResponseHandler,
|
|
3
|
-
errorHttpResponseAfterHandler,
|
|
4
|
-
} from '../errorHttpResponseMiddleware';
|
|
5
|
-
import ValidationErrorException from '../__mocks__/ValidationErrorException';
|
|
6
|
-
|
|
7
|
-
describe('MiddlewareGroup: test errorHandler middleware', () => {
|
|
8
|
-
it('test with thrown Error', async () => {
|
|
9
|
-
const data = await errorHttpResponseHandler({
|
|
10
|
-
error: new Error('Test validation error'),
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
expect(data.headers['Access-Control-Allow-Origin']).toBe('*');
|
|
14
|
-
expect(data.headers['Cache-Control']).toBe('no-cache');
|
|
15
|
-
|
|
16
|
-
expect(data.statusCode).toBe(500);
|
|
17
|
-
|
|
18
|
-
expect(typeof data.body).toBe('string');
|
|
19
|
-
|
|
20
|
-
const dataBody = JSON.parse(data.body);
|
|
21
|
-
expect(dataBody).toHaveProperty('status', 'error');
|
|
22
|
-
expect(dataBody).toHaveProperty('data', null);
|
|
23
|
-
expect(dataBody).toHaveProperty('error');
|
|
24
|
-
expect(dataBody).toHaveProperty('error.code', 'UNHANDLED_ERROR');
|
|
25
|
-
expect(dataBody).toHaveProperty(
|
|
26
|
-
'error.message',
|
|
27
|
-
'Error: Test validation error'
|
|
28
|
-
);
|
|
29
|
-
expect(dataBody).toHaveProperty('error.details', '');
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it('test with thrown custom Error with default parameters', async () => {
|
|
33
|
-
const data = await errorHttpResponseHandler({
|
|
34
|
-
error: new ValidationErrorException('Test validation error'),
|
|
35
|
-
});
|
|
36
|
-
const dataBody = JSON.parse(data.body);
|
|
37
|
-
|
|
38
|
-
expect(data.statusCode).toBe(400);
|
|
39
|
-
|
|
40
|
-
expect(dataBody).toHaveProperty('error.code', 'VALIDATION_ERROR');
|
|
41
|
-
expect(dataBody).toHaveProperty(
|
|
42
|
-
'error.message',
|
|
43
|
-
'ValidationError: Test validation error'
|
|
44
|
-
);
|
|
45
|
-
expect(dataBody).toHaveProperty('error.details', '');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('test with formatSuccess argument', async () => {
|
|
49
|
-
const data = await errorHttpResponseHandler({
|
|
50
|
-
error: new ValidationErrorException('Test validation error'),
|
|
51
|
-
formatError: options => {
|
|
52
|
-
return options.error.code;
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
expect(data.statusCode).toBe(400);
|
|
57
|
-
|
|
58
|
-
expect(data.body).toBe('VALIDATION_ERROR');
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('test with thrown custom Error with given parameters', async () => {
|
|
62
|
-
const data = await errorHttpResponseHandler({
|
|
63
|
-
error: new ValidationErrorException(
|
|
64
|
-
'Test validation error',
|
|
65
|
-
'VALIDATION_ERROR_SAMPLE',
|
|
66
|
-
401,
|
|
67
|
-
{
|
|
68
|
-
extraDataKey: 'extraDataValue',
|
|
69
|
-
}
|
|
70
|
-
),
|
|
71
|
-
});
|
|
72
|
-
const dataBody = JSON.parse(data.body);
|
|
73
|
-
|
|
74
|
-
expect(data.statusCode).toBe(401);
|
|
75
|
-
|
|
76
|
-
expect(dataBody).toHaveProperty('error.code', 'VALIDATION_ERROR_SAMPLE');
|
|
77
|
-
expect(dataBody).toHaveProperty(
|
|
78
|
-
'error.message',
|
|
79
|
-
'ValidationError: Test validation error'
|
|
80
|
-
);
|
|
81
|
-
expect(dataBody).toHaveProperty('error.details', {
|
|
82
|
-
extraDataKey: 'extraDataValue',
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
it('test with error message', async () => {
|
|
87
|
-
const data = await errorHttpResponseHandler({
|
|
88
|
-
error: 'Test error message',
|
|
89
|
-
});
|
|
90
|
-
const dataBody = JSON.parse(data.body);
|
|
91
|
-
|
|
92
|
-
expect(data.statusCode).toBe(500);
|
|
93
|
-
|
|
94
|
-
expect(dataBody).toHaveProperty('error.code', 'UNHANDLED_ERROR');
|
|
95
|
-
expect(dataBody).toHaveProperty('error.message', 'Test error message');
|
|
96
|
-
expect(dataBody).toHaveProperty('error.details', '');
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it('test with error message with event', async () => {
|
|
100
|
-
const data = await errorHttpResponseHandler({
|
|
101
|
-
error: 'Test error message',
|
|
102
|
-
event: {
|
|
103
|
-
someEventKey: 'someEventValue',
|
|
104
|
-
},
|
|
105
|
-
debugMode: true,
|
|
106
|
-
});
|
|
107
|
-
const dataBody = JSON.parse(data.body);
|
|
108
|
-
|
|
109
|
-
expect(data.statusCode).toBe(500);
|
|
110
|
-
expect(dataBody).toHaveProperty('_meta', {
|
|
111
|
-
someEventKey: 'someEventValue',
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
it('test with error message with event in non-debug mode', async () => {
|
|
116
|
-
const data = await errorHttpResponseHandler({
|
|
117
|
-
error: 'Test error message',
|
|
118
|
-
event: {
|
|
119
|
-
someEventKey: 'someEventValue',
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
const dataBody = JSON.parse(data.body);
|
|
123
|
-
|
|
124
|
-
expect(data.statusCode).toBe(500);
|
|
125
|
-
expect(dataBody).toHaveProperty('_meta', {});
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
it('test with undefined opts', async () => {
|
|
129
|
-
const data = await errorHttpResponseHandler();
|
|
130
|
-
|
|
131
|
-
expect(data.headers['Access-Control-Allow-Origin']).toBe('*');
|
|
132
|
-
expect(data.headers['Cache-Control']).toBe('no-cache');
|
|
133
|
-
|
|
134
|
-
expect(data.statusCode).toBe(500);
|
|
135
|
-
|
|
136
|
-
expect(typeof data.body).toBe('string');
|
|
137
|
-
|
|
138
|
-
const dataBody = JSON.parse(data.body);
|
|
139
|
-
expect(dataBody).toHaveProperty('status', 'error');
|
|
140
|
-
expect(dataBody).toHaveProperty('data', null);
|
|
141
|
-
expect(dataBody).toHaveProperty('error');
|
|
142
|
-
expect(dataBody).toHaveProperty('error.code', 'UNHANDLED_ERROR');
|
|
143
|
-
expect(dataBody).toHaveProperty('error.message', '');
|
|
144
|
-
expect(dataBody).toHaveProperty('error.details', '');
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
it('should call db.end() whenever a db options is set', async () => {
|
|
148
|
-
const end = jest.fn().mockResolvedValue();
|
|
149
|
-
await errorHttpResponseHandler({
|
|
150
|
-
error: 'Test error message',
|
|
151
|
-
event: {
|
|
152
|
-
someEventKey: 'someEventValue',
|
|
153
|
-
},
|
|
154
|
-
db: {
|
|
155
|
-
end,
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
expect(end).toHaveBeenCalledTimes(1);
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
it('should call cache.end() whenever a cache options is set', async () => {
|
|
163
|
-
const end = jest.fn().mockResolvedValue();
|
|
164
|
-
await errorHttpResponseHandler({
|
|
165
|
-
error: 'Test error message',
|
|
166
|
-
event: {
|
|
167
|
-
someEventKey: 'someEventValue',
|
|
168
|
-
},
|
|
169
|
-
cache: {
|
|
170
|
-
end,
|
|
171
|
-
},
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
expect(end).toHaveBeenCalledTimes(1);
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
it('should call dbRead.end() whenever a dbRead options is set', async () => {
|
|
178
|
-
const end = jest.fn().mockResolvedValue();
|
|
179
|
-
await errorHttpResponseHandler({
|
|
180
|
-
error: 'Test error message',
|
|
181
|
-
event: {
|
|
182
|
-
someEventKey: 'someEventValue',
|
|
183
|
-
},
|
|
184
|
-
dbRead: {
|
|
185
|
-
end,
|
|
186
|
-
},
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
expect(end).toHaveBeenCalledTimes(1);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
describe('MiddlewareGroup: test errorHttpResponseAfterHandler', () => {
|
|
194
|
-
it('test with default parameters', async () => {
|
|
195
|
-
const handler = {
|
|
196
|
-
error: {},
|
|
197
|
-
event: {},
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
await errorHttpResponseAfterHandler(handler, () => {});
|
|
201
|
-
expect(handler.response).toHaveProperty('statusCode', 500);
|
|
202
|
-
});
|
|
203
|
-
});
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
determineRequestAcceptEncoding,
|
|
3
|
-
determineRequestOrigin,
|
|
4
|
-
gzip,
|
|
5
|
-
gzipHttpResponse,
|
|
6
|
-
} from '../gzipHttpResponse';
|
|
7
|
-
|
|
8
|
-
describe('test gzipHttpResponse determineRequestOrigin', () => {
|
|
9
|
-
it('should return APIGATEWAY by default', () => {
|
|
10
|
-
const handler = { event: { requestContext: {} } };
|
|
11
|
-
|
|
12
|
-
expect(determineRequestOrigin(handler)).toEqual('APIGATEWAY');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('should return ELB when requestContext has property elb', () => {
|
|
16
|
-
const handler = { event: { requestContext: { elb: {} } } };
|
|
17
|
-
|
|
18
|
-
expect(determineRequestOrigin(handler)).toEqual('ELB');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('should return APIGATEWAY when requestContext has property apiId', () => {
|
|
22
|
-
const handler = { event: { requestContext: { apiId: 'asd-123' } } };
|
|
23
|
-
|
|
24
|
-
expect(determineRequestOrigin(handler)).toEqual('APIGATEWAY');
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
describe('test gzipHttpResponse determineRequestAcceptEncoding', () => {
|
|
29
|
-
it('should return false when no Accept-Encoding header exists', () => {
|
|
30
|
-
const handler = { event: { headers: {} } };
|
|
31
|
-
|
|
32
|
-
expect(determineRequestAcceptEncoding(handler)).toBeFalsy();
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it('should return true when Accept-Encoding header exists with gzip', () => {
|
|
36
|
-
const handler = { event: { headers: { 'Accept-Encoding': 'gzip' } } };
|
|
37
|
-
|
|
38
|
-
expect(determineRequestAcceptEncoding(handler)).toBeTruthy();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should return true when Accept-encoding header exists with gzip', () => {
|
|
42
|
-
const handler = { event: { headers: { 'Accept-encoding': 'gzip' } } };
|
|
43
|
-
|
|
44
|
-
expect(determineRequestAcceptEncoding(handler)).toBeTruthy();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('should return true when accept-encoding header exists with gzip', () => {
|
|
48
|
-
const handler = { event: { headers: { 'accept-encoding': 'gzip' } } };
|
|
49
|
-
|
|
50
|
-
expect(determineRequestAcceptEncoding(handler)).toBeTruthy();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('should return true when Accept-Encoding header exists with Multiple algorithms containing gzip', () => {
|
|
54
|
-
const handler = {
|
|
55
|
-
event: { headers: { 'Accept-Encoding': 'deflate, gzip' } },
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
expect(determineRequestAcceptEncoding(handler)).toBeTruthy();
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
// FIXME: Currently this is not being handled
|
|
62
|
-
// it('should return true when Accept-Encoding header exists with Multiple algorithms containing gzip, weighted with the quality value syntax', () => {
|
|
63
|
-
// const handler = {
|
|
64
|
-
// event: { headers: { 'Accept-Encoding': 'deflate, gzip;q=1.0, *;q=0.5' } },
|
|
65
|
-
// };
|
|
66
|
-
|
|
67
|
-
// expect(determineRequestAcceptEncoding(handler)).toBeTruthy();
|
|
68
|
-
// });
|
|
69
|
-
|
|
70
|
-
it('should return false when Accept-Encoding header exists with other than gzip', () => {
|
|
71
|
-
const handler = { event: { headers: { 'Accept-Encoding': 'compress' } } };
|
|
72
|
-
|
|
73
|
-
expect(determineRequestAcceptEncoding(handler)).toBeFalsy();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
describe('test gzipHttpResponse gzip', () => {
|
|
78
|
-
it('should return gzipped data with necessary headers', async () => {
|
|
79
|
-
const response = {
|
|
80
|
-
body: JSON.stringify({ someKey: 'someValue' }),
|
|
81
|
-
};
|
|
82
|
-
// const gzippedBody = 'H4sIAAAAAAAAE6tWKs7PTfVOrVSyArPCEnNKU5VqASj48/MXAAAA';
|
|
83
|
-
|
|
84
|
-
const resp = await gzip(response);
|
|
85
|
-
// expect(resp.body).toEqual(gzippedBody);
|
|
86
|
-
expect(resp.isBase64Encoded).toBeTruthy();
|
|
87
|
-
expect(resp.headers['Content-Encoding']).toEqual('gzip');
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
it('should return zlib.gzip error when passing non-string object', async () => {
|
|
91
|
-
const response = {
|
|
92
|
-
body: { someKey: 'someValue' },
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
const resp = await gzip(response);
|
|
97
|
-
expect(resp).toThrow();
|
|
98
|
-
} catch (err) {
|
|
99
|
-
expect(err.name).toEqual('LesgoException');
|
|
100
|
-
expect(err.code).toMatch(/^GZIP_[A-Z]+_ERROR$/);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
describe('test gzipHttpResponse gzipHttpResponse', () => {
|
|
106
|
-
it('should return gzipped response for ELB requests', async () => {
|
|
107
|
-
const handler = {
|
|
108
|
-
event: {
|
|
109
|
-
headers: { 'accept-encoding': 'gzip' },
|
|
110
|
-
requestContext: { elb: {} },
|
|
111
|
-
},
|
|
112
|
-
response: {
|
|
113
|
-
body: JSON.stringify({ someKey: 'someValue' }),
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
// const gzippedBody = 'H4sIAAAAAAAAE6tWKs7PTfVOrVSyArPCEnNKU5VqASj48/MXAAAA';
|
|
118
|
-
|
|
119
|
-
const handlerResp = await gzipHttpResponse(handler);
|
|
120
|
-
|
|
121
|
-
// expect(handlerResp.body).toEqual(gzippedBody);
|
|
122
|
-
expect(handlerResp.isBase64Encoded).toBeTruthy();
|
|
123
|
-
expect(handlerResp.headers['Content-Encoding']).toEqual('gzip');
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it('should return non-gzipped response for API Gateway requests', async () => {
|
|
127
|
-
const handler = {
|
|
128
|
-
event: {
|
|
129
|
-
headers: { 'accept-encoding': 'gzip' },
|
|
130
|
-
requestContext: { apiId: 'asd-123' },
|
|
131
|
-
},
|
|
132
|
-
response: {
|
|
133
|
-
body: JSON.stringify({ someKey: 'someValue' }),
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
const handlerResp = await gzipHttpResponse(handler);
|
|
138
|
-
|
|
139
|
-
expect(handlerResp.body).toEqual(handler.response.body);
|
|
140
|
-
expect(handlerResp.isBase64Encoded).toBeUndefined();
|
|
141
|
-
expect(handlerResp.headers).toBeUndefined();
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should return gzipped response for ELB requests from options', async () => {
|
|
145
|
-
const handler = {
|
|
146
|
-
event: {
|
|
147
|
-
headers: { 'accept-encoding': 'gzip' },
|
|
148
|
-
requestContext: { elb: {} },
|
|
149
|
-
},
|
|
150
|
-
response: {
|
|
151
|
-
body: JSON.stringify({ someKey: 'someValue' }),
|
|
152
|
-
},
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
// const gzippedBody = 'H4sIAAAAAAAAE6tWKs7PTfVOrVSyArPCEnNKU5VqASj48/MXAAAA';
|
|
156
|
-
|
|
157
|
-
const handlerResp = await gzipHttpResponse(handler, {
|
|
158
|
-
zipWhenRequest: ['ELB'],
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
// expect(handlerResp.body).toEqual(gzippedBody);
|
|
162
|
-
expect(handlerResp.isBase64Encoded).toBeTruthy();
|
|
163
|
-
expect(handlerResp.headers['Content-Encoding']).toEqual('gzip');
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
it('should return non-gzipped response for ELB requests with custom non-elb option', async () => {
|
|
167
|
-
const handler = {
|
|
168
|
-
event: {
|
|
169
|
-
headers: { 'accept-encoding': 'gzip' },
|
|
170
|
-
requestContext: { elb: {} },
|
|
171
|
-
},
|
|
172
|
-
response: {
|
|
173
|
-
body: JSON.stringify({ someKey: 'someValue' }),
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
const handlerResp = await gzipHttpResponse(handler, {
|
|
178
|
-
zipWhenRequest: ['apiId'],
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
expect(handlerResp.body).toEqual(handler.response.body);
|
|
182
|
-
expect(handlerResp.isBase64Encoded).toBeUndefined();
|
|
183
|
-
expect(handlerResp.headers).toBeUndefined();
|
|
184
|
-
});
|
|
185
|
-
});
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import app from 'Config/app'; // eslint-disable-line import/no-unresolved
|
|
2
|
-
import {
|
|
3
|
-
successHttpNoOutputResponseAfterHandler,
|
|
4
|
-
errorHttpNoOutputResponseAfterHandler,
|
|
5
|
-
} from '../httpNoOutputMiddleware';
|
|
6
|
-
|
|
7
|
-
describe('MiddlewareGroup: test successHttpNoOutputResponseAfterHandler', () => {
|
|
8
|
-
it('should have no body without debug', async () => {
|
|
9
|
-
const handler = {
|
|
10
|
-
response: {},
|
|
11
|
-
event: {},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
await successHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
15
|
-
response: 'Some message',
|
|
16
|
-
});
|
|
17
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
18
|
-
expect(handler.response).toHaveProperty('body', '');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('should return the body when debug is enabled via query string parameters', async () => {
|
|
22
|
-
const handler = {
|
|
23
|
-
response: {},
|
|
24
|
-
event: {
|
|
25
|
-
queryStringParameters: {
|
|
26
|
-
debug: '1',
|
|
27
|
-
},
|
|
28
|
-
someEventKey: 'someEventValue',
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
await successHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
33
|
-
response: 'Some message',
|
|
34
|
-
});
|
|
35
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
36
|
-
expect(handler.response).toHaveProperty(
|
|
37
|
-
'body',
|
|
38
|
-
JSON.stringify({
|
|
39
|
-
status: 'success',
|
|
40
|
-
data: 'Some message',
|
|
41
|
-
_meta: {},
|
|
42
|
-
})
|
|
43
|
-
);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('should have empty body even when enabled when configuration has is disabled', async () => {
|
|
47
|
-
app.debug = false;
|
|
48
|
-
|
|
49
|
-
const handler = {
|
|
50
|
-
response: {},
|
|
51
|
-
event: {
|
|
52
|
-
queryStringParameters: {
|
|
53
|
-
debug: '1',
|
|
54
|
-
},
|
|
55
|
-
someEventKey: 'someEventValue',
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
await successHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
60
|
-
response: 'Some message',
|
|
61
|
-
});
|
|
62
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
63
|
-
expect(handler.response).toHaveProperty('body', '');
|
|
64
|
-
app.debug = true;
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it.each`
|
|
68
|
-
debug | allowResponse | body
|
|
69
|
-
${false} | ${() => true} | ${JSON.stringify({ status: 'success', data: 'Some message', _meta: {} })}
|
|
70
|
-
${true} | ${() => true} | ${JSON.stringify({ status: 'success', data: 'Some message', _meta: {} })}
|
|
71
|
-
${false} | ${() => false} | ${''}
|
|
72
|
-
${true} | ${() => false} | ${''}
|
|
73
|
-
${true} | ${undefined} | ${JSON.stringify({ status: 'success', data: 'Some message', _meta: {} })}
|
|
74
|
-
${false} | ${undefined} | ${''}
|
|
75
|
-
`(
|
|
76
|
-
'should return a specific response when allowResponse is $allowResponse and debug is $debug passed via options',
|
|
77
|
-
async ({ debug, allowResponse, body }) => {
|
|
78
|
-
app.debug = debug;
|
|
79
|
-
|
|
80
|
-
const handler = {
|
|
81
|
-
response: {},
|
|
82
|
-
event: {
|
|
83
|
-
someEventKey: 'someEventValue',
|
|
84
|
-
queryStringParameters: {
|
|
85
|
-
debug: 1,
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
await successHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
91
|
-
response: 'Some message',
|
|
92
|
-
allowResponse,
|
|
93
|
-
});
|
|
94
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
95
|
-
expect(handler.response).toHaveProperty('body', body);
|
|
96
|
-
|
|
97
|
-
app.debug = true;
|
|
98
|
-
}
|
|
99
|
-
);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
describe('MiddlewareGroup: test errorHttpNoOutputResponseAfterHandler', () => {
|
|
103
|
-
it('should have no body without debug', async () => {
|
|
104
|
-
const handler = {
|
|
105
|
-
response: {},
|
|
106
|
-
event: {},
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
await errorHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
110
|
-
error: new Error('Test validation error'),
|
|
111
|
-
});
|
|
112
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
113
|
-
expect(handler.response).toHaveProperty('body', '');
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
it('should return the body when debug is enabled via query string parameters', async () => {
|
|
117
|
-
const handler = {
|
|
118
|
-
response: {},
|
|
119
|
-
event: {
|
|
120
|
-
queryStringParameters: {
|
|
121
|
-
debug: '1',
|
|
122
|
-
},
|
|
123
|
-
someEventKey: 'someEventValue',
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
await errorHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
128
|
-
error: new Error('Test validation error'),
|
|
129
|
-
});
|
|
130
|
-
expect(handler.response).toHaveProperty('statusCode', 500);
|
|
131
|
-
expect(handler.response).toHaveProperty(
|
|
132
|
-
'body',
|
|
133
|
-
JSON.stringify({
|
|
134
|
-
status: 'error',
|
|
135
|
-
data: null,
|
|
136
|
-
error: {
|
|
137
|
-
code: 'UNHANDLED_ERROR',
|
|
138
|
-
message: 'Error: Test validation error',
|
|
139
|
-
details: '',
|
|
140
|
-
},
|
|
141
|
-
_meta: {
|
|
142
|
-
queryStringParameters: {
|
|
143
|
-
debug: '1',
|
|
144
|
-
},
|
|
145
|
-
someEventKey: 'someEventValue',
|
|
146
|
-
},
|
|
147
|
-
})
|
|
148
|
-
);
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
it('should have empty body even when enabled when configuration has is disabled', async () => {
|
|
152
|
-
app.debug = false;
|
|
153
|
-
|
|
154
|
-
const handler = {
|
|
155
|
-
response: {},
|
|
156
|
-
event: {
|
|
157
|
-
queryStringParameters: {
|
|
158
|
-
debug: '1',
|
|
159
|
-
},
|
|
160
|
-
someEventKey: 'someEventValue',
|
|
161
|
-
},
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
await errorHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
165
|
-
error: new Error('Test validation error'),
|
|
166
|
-
});
|
|
167
|
-
expect(handler.response).toHaveProperty('statusCode', 200);
|
|
168
|
-
expect(handler.response).toHaveProperty('body', '');
|
|
169
|
-
app.debug = true;
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
it('should have a response when allowResponse override is passed via options', async () => {
|
|
173
|
-
app.debug = false;
|
|
174
|
-
|
|
175
|
-
const handler = {
|
|
176
|
-
response: {},
|
|
177
|
-
event: {
|
|
178
|
-
queryStringParameters: {
|
|
179
|
-
debug: '1',
|
|
180
|
-
},
|
|
181
|
-
someEventKey: 'someEventValue',
|
|
182
|
-
},
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
await errorHttpNoOutputResponseAfterHandler(handler, () => {}, {
|
|
186
|
-
error: new Error('Test validation error'),
|
|
187
|
-
allowResponse: () => true,
|
|
188
|
-
});
|
|
189
|
-
expect(handler.response).toHaveProperty('statusCode', 500);
|
|
190
|
-
expect(JSON.parse(handler.response.body)).toStrictEqual({
|
|
191
|
-
status: 'error',
|
|
192
|
-
data: null,
|
|
193
|
-
error: {
|
|
194
|
-
code: 'UNHANDLED_ERROR',
|
|
195
|
-
message: 'Error: Test validation error',
|
|
196
|
-
details: '',
|
|
197
|
-
},
|
|
198
|
-
_meta: expect.anything(),
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
});
|