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,223 +0,0 @@
|
|
|
1
|
-
import LengthAwarePaginator from '../pagination/LengthAwarePaginator';
|
|
2
|
-
import {
|
|
3
|
-
mockData,
|
|
4
|
-
mockDataFirstItem,
|
|
5
|
-
mockDataLastItem,
|
|
6
|
-
} from '../../utils/__mocks__/db';
|
|
7
|
-
import db from '../../utils/db';
|
|
8
|
-
|
|
9
|
-
jest.mock('../../utils/db');
|
|
10
|
-
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
db.select.mockClear();
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
const FILE = 'Services/pagination/LengthAwarePaginator';
|
|
16
|
-
|
|
17
|
-
describe('test LengthAwarePaginator instantiate', () => {
|
|
18
|
-
it('should not throw exception when instantiating', async () => {
|
|
19
|
-
const paginator = new LengthAwarePaginator(
|
|
20
|
-
db,
|
|
21
|
-
'SELECT * FROM tests',
|
|
22
|
-
{},
|
|
23
|
-
{
|
|
24
|
-
perPage: 5,
|
|
25
|
-
total: 30,
|
|
26
|
-
}
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
expect(await paginator.count()).toEqual(5);
|
|
30
|
-
expect(paginator.currentPage()).toEqual(1);
|
|
31
|
-
expect(await paginator.firstItem()).toMatchObject(mockDataFirstItem);
|
|
32
|
-
expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
|
|
33
|
-
expect(paginator.perPage()).toEqual(5);
|
|
34
|
-
expect(await paginator.total()).toEqual(30);
|
|
35
|
-
|
|
36
|
-
expect(db.select).toHaveBeenCalled();
|
|
37
|
-
});
|
|
38
|
-
it('should not throw exception when instantiating with current page', async () => {
|
|
39
|
-
const paginator = new LengthAwarePaginator(
|
|
40
|
-
db,
|
|
41
|
-
'SELECT * FROM tests',
|
|
42
|
-
{},
|
|
43
|
-
{
|
|
44
|
-
perPage: 5,
|
|
45
|
-
currentPage: 2,
|
|
46
|
-
total: 30,
|
|
47
|
-
}
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
expect(await paginator.count()).toEqual(5);
|
|
51
|
-
expect(paginator.currentPage()).toEqual(2);
|
|
52
|
-
expect(await paginator.firstItem()).toMatchObject(mockDataFirstItem);
|
|
53
|
-
expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
|
|
54
|
-
expect(paginator.perPage()).toEqual(5);
|
|
55
|
-
expect(await paginator.total()).toEqual(30);
|
|
56
|
-
|
|
57
|
-
expect(db.select).toHaveBeenCalled();
|
|
58
|
-
});
|
|
59
|
-
it('should default perPage to 10 when instantiating without perPage', async () => {
|
|
60
|
-
const paginator = new LengthAwarePaginator(
|
|
61
|
-
db,
|
|
62
|
-
'SELECT * FROM tests',
|
|
63
|
-
{},
|
|
64
|
-
{
|
|
65
|
-
total: 30,
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
expect(await paginator.count()).toEqual(10);
|
|
70
|
-
expect(paginator.currentPage()).toEqual(1);
|
|
71
|
-
expect(paginator.perPage()).toEqual(10);
|
|
72
|
-
expect(await paginator.total()).toEqual(30);
|
|
73
|
-
|
|
74
|
-
expect(db.select).toHaveBeenCalled();
|
|
75
|
-
});
|
|
76
|
-
it('should throw exception if total is not a number', async () => {
|
|
77
|
-
try {
|
|
78
|
-
expect(
|
|
79
|
-
new LengthAwarePaginator(
|
|
80
|
-
db,
|
|
81
|
-
'SELECT * FROM tests',
|
|
82
|
-
{},
|
|
83
|
-
{
|
|
84
|
-
perPage: 5,
|
|
85
|
-
currentPage: 1,
|
|
86
|
-
total: 'test',
|
|
87
|
-
}
|
|
88
|
-
)
|
|
89
|
-
).toThrow();
|
|
90
|
-
} catch (err) {
|
|
91
|
-
expect(err.name).toEqual('LesgoException');
|
|
92
|
-
expect(err.message).toEqual(
|
|
93
|
-
"Invalid type for 'total', expecting 'number'"
|
|
94
|
-
);
|
|
95
|
-
expect(err.code).toEqual(`${FILE}::FIELD_VALIDATION_EXCEPTION`);
|
|
96
|
-
expect(err.statusCode).toEqual(500);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
it('should return the object version of the paginator', async () => {
|
|
100
|
-
const paginator = new LengthAwarePaginator(
|
|
101
|
-
db,
|
|
102
|
-
'SELECT * FROM total_tests',
|
|
103
|
-
{},
|
|
104
|
-
{
|
|
105
|
-
perPage: 5,
|
|
106
|
-
total: 30,
|
|
107
|
-
}
|
|
108
|
-
);
|
|
109
|
-
expect(await paginator.toObject()).toMatchObject({
|
|
110
|
-
count: 5,
|
|
111
|
-
previous_page: false,
|
|
112
|
-
current_page: 1,
|
|
113
|
-
next_page: 2,
|
|
114
|
-
per_page: 5,
|
|
115
|
-
last_page: 6,
|
|
116
|
-
total: 30,
|
|
117
|
-
items: [
|
|
118
|
-
{ ...mockDataFirstItem },
|
|
119
|
-
{ ...mockData },
|
|
120
|
-
{ ...mockData },
|
|
121
|
-
{ ...mockData },
|
|
122
|
-
{ ...mockDataLastItem },
|
|
123
|
-
],
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
expect(db.select).toHaveBeenCalled();
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
it('should simply return an empty paginator object if total is explicitly zero', async () => {
|
|
130
|
-
const paginator = new LengthAwarePaginator(
|
|
131
|
-
db,
|
|
132
|
-
'SELECT * FROM tests',
|
|
133
|
-
{},
|
|
134
|
-
{
|
|
135
|
-
perPage: 5,
|
|
136
|
-
currentPage: 1,
|
|
137
|
-
total: 0,
|
|
138
|
-
}
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
expect(await paginator.count()).toEqual(0);
|
|
142
|
-
expect(await paginator.previousPage()).toEqual(false);
|
|
143
|
-
expect(paginator.currentPage()).toEqual(1);
|
|
144
|
-
expect(await paginator.nextPage()).toEqual(false);
|
|
145
|
-
expect(await paginator.firstItem()).toBe(undefined);
|
|
146
|
-
expect(await paginator.lastItem()).toBe(undefined);
|
|
147
|
-
expect(paginator.perPage()).toEqual(5);
|
|
148
|
-
expect(await paginator.total()).toEqual(0);
|
|
149
|
-
|
|
150
|
-
expect(await paginator.toObject()).toMatchObject({
|
|
151
|
-
count: 0,
|
|
152
|
-
previous_page: false,
|
|
153
|
-
current_page: 1,
|
|
154
|
-
next_page: false,
|
|
155
|
-
per_page: 5,
|
|
156
|
-
last_page: 0,
|
|
157
|
-
total: 0,
|
|
158
|
-
items: [],
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
expect(db.select).not.toHaveBeenCalled();
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
describe('test total() usage', () => {
|
|
166
|
-
it('should get total number of data using supplied paramater', async () => {
|
|
167
|
-
const paginator = new LengthAwarePaginator(
|
|
168
|
-
db,
|
|
169
|
-
'SELECT * FROM total_tests',
|
|
170
|
-
{},
|
|
171
|
-
{
|
|
172
|
-
perPage: 10,
|
|
173
|
-
currentPage: 1,
|
|
174
|
-
total: 30,
|
|
175
|
-
}
|
|
176
|
-
);
|
|
177
|
-
|
|
178
|
-
expect(await paginator.total()).toEqual(30);
|
|
179
|
-
expect(db.select).not.toHaveBeenCalled();
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
describe('test lastPage() usage', () => {
|
|
184
|
-
it('should get the last page using supplied parameter as total data', async () => {
|
|
185
|
-
const paginator1 = new LengthAwarePaginator(
|
|
186
|
-
db,
|
|
187
|
-
'SELECT * FROM total_tests',
|
|
188
|
-
{},
|
|
189
|
-
{
|
|
190
|
-
perPage: 10,
|
|
191
|
-
currentPage: 1,
|
|
192
|
-
total: 30,
|
|
193
|
-
}
|
|
194
|
-
);
|
|
195
|
-
expect(await paginator1.lastPage()).toEqual(3);
|
|
196
|
-
|
|
197
|
-
const paginator2 = new LengthAwarePaginator(
|
|
198
|
-
db,
|
|
199
|
-
'SELECT * FROM total_tests',
|
|
200
|
-
{},
|
|
201
|
-
{
|
|
202
|
-
perPage: 5,
|
|
203
|
-
currentPage: 1,
|
|
204
|
-
total: 30,
|
|
205
|
-
}
|
|
206
|
-
);
|
|
207
|
-
expect(await paginator2.lastPage()).toEqual(6);
|
|
208
|
-
|
|
209
|
-
const paginator3 = new LengthAwarePaginator(
|
|
210
|
-
db,
|
|
211
|
-
'SELECT * FROM total_tests',
|
|
212
|
-
{},
|
|
213
|
-
{
|
|
214
|
-
perPage: 7,
|
|
215
|
-
currentPage: 1,
|
|
216
|
-
total: 30,
|
|
217
|
-
}
|
|
218
|
-
);
|
|
219
|
-
expect(await paginator3.lastPage()).toEqual(5);
|
|
220
|
-
|
|
221
|
-
expect(db.select).not.toHaveBeenCalled();
|
|
222
|
-
});
|
|
223
|
-
});
|
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
/* eslint no-console: 0 */
|
|
2
|
-
|
|
3
|
-
import LoggerService from '../LoggerService';
|
|
4
|
-
import LesgoException from '../../exceptions/LesgoException';
|
|
5
|
-
|
|
6
|
-
describe('ServicesGroup: test LoggerService instantiation', () => {
|
|
7
|
-
it('test instantiate default LoggerService', () => {
|
|
8
|
-
const logger = new LoggerService();
|
|
9
|
-
|
|
10
|
-
expect(logger.logger).toBe('lesgo-logger');
|
|
11
|
-
expect(logger.meta).toMatchObject({});
|
|
12
|
-
expect(logger.transports).toEqual(expect.arrayContaining([]));
|
|
13
|
-
expect(logger.logLevels).toMatchObject({
|
|
14
|
-
error: 0,
|
|
15
|
-
warn: 1,
|
|
16
|
-
notice: 2,
|
|
17
|
-
info: 3,
|
|
18
|
-
debug: 4,
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('test instantiate LoggerService with console transport', () => {
|
|
23
|
-
const logger = new LoggerService({
|
|
24
|
-
transports: [
|
|
25
|
-
{
|
|
26
|
-
logType: 'console',
|
|
27
|
-
level: 'info',
|
|
28
|
-
config: {
|
|
29
|
-
getCreatedAt: true,
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
expect(logger.logger).toBe('lesgo-logger');
|
|
36
|
-
expect(logger.meta).toMatchObject({});
|
|
37
|
-
expect(logger.transports[0]).toMatchObject({
|
|
38
|
-
logType: 'console',
|
|
39
|
-
level: 'info',
|
|
40
|
-
config: {
|
|
41
|
-
getCreatedAt: true,
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('test instantiate LoggerService with default meta', () => {
|
|
47
|
-
const logger = new LoggerService({
|
|
48
|
-
defaultMeta: {
|
|
49
|
-
someMeta1: 'someMeta1',
|
|
50
|
-
someMeta2: 'someMeta2',
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
expect(logger.logger).toBe('lesgo-logger');
|
|
55
|
-
expect(logger.meta).toMatchObject({
|
|
56
|
-
someMeta1: 'someMeta1',
|
|
57
|
-
someMeta2: 'someMeta2',
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
describe('ServicesGroup: test log LoggerService with console transport', () => {
|
|
63
|
-
const consoleTransportConfig = {
|
|
64
|
-
transports: [
|
|
65
|
-
{
|
|
66
|
-
logType: 'console',
|
|
67
|
-
level: 'info',
|
|
68
|
-
config: {
|
|
69
|
-
tags: {
|
|
70
|
-
addTag: 'config.tags.addTag',
|
|
71
|
-
},
|
|
72
|
-
meta: {
|
|
73
|
-
addMeta: 'config.meta.addMeta',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
it('test log with undefined level', () => {
|
|
81
|
-
const logger = new LoggerService();
|
|
82
|
-
expect(() => logger.log('invalidLevel', 'some message')).toThrow(
|
|
83
|
-
new LesgoException('Invalid level provided in log()')
|
|
84
|
-
);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
it('test log with undefined transport', () => {
|
|
88
|
-
const logger = new LoggerService();
|
|
89
|
-
logger.log('info', 'some info log');
|
|
90
|
-
|
|
91
|
-
expect(console.info).not.toHaveBeenCalled();
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('test log with log method', () => {
|
|
95
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
96
|
-
logger.log('info', 'some info log');
|
|
97
|
-
|
|
98
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
99
|
-
JSON.stringify({
|
|
100
|
-
level: 'info',
|
|
101
|
-
message: 'some info log',
|
|
102
|
-
logger: 'lesgo-logger',
|
|
103
|
-
extra: {},
|
|
104
|
-
})
|
|
105
|
-
);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
it('test log with info level', () => {
|
|
109
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
110
|
-
logger.info('some info log');
|
|
111
|
-
|
|
112
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
113
|
-
JSON.stringify({
|
|
114
|
-
level: 'info',
|
|
115
|
-
message: 'some info log',
|
|
116
|
-
logger: 'lesgo-logger',
|
|
117
|
-
extra: {},
|
|
118
|
-
})
|
|
119
|
-
);
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
it('test log with debug level', () => {
|
|
123
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
124
|
-
logger.debug('some debug log');
|
|
125
|
-
|
|
126
|
-
expect(console.debug).toHaveBeenCalledWith(
|
|
127
|
-
JSON.stringify({
|
|
128
|
-
level: 'debug',
|
|
129
|
-
message: 'some debug log',
|
|
130
|
-
logger: 'lesgo-logger',
|
|
131
|
-
extra: {},
|
|
132
|
-
})
|
|
133
|
-
);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('test log with warn level', () => {
|
|
137
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
138
|
-
logger.warn('some warn log');
|
|
139
|
-
|
|
140
|
-
expect(console.warn).toHaveBeenCalledWith(
|
|
141
|
-
JSON.stringify({
|
|
142
|
-
level: 'warn',
|
|
143
|
-
message: 'some warn log',
|
|
144
|
-
logger: 'lesgo-logger',
|
|
145
|
-
extra: {},
|
|
146
|
-
})
|
|
147
|
-
);
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
it('test log with notice level', () => {
|
|
151
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
152
|
-
logger.notice('some notice log');
|
|
153
|
-
|
|
154
|
-
expect(console.log).toHaveBeenCalledWith(
|
|
155
|
-
JSON.stringify({
|
|
156
|
-
level: 'notice',
|
|
157
|
-
message: 'some notice log',
|
|
158
|
-
logger: 'lesgo-logger',
|
|
159
|
-
extra: {},
|
|
160
|
-
})
|
|
161
|
-
);
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
it('test log with error level', () => {
|
|
165
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
166
|
-
logger.error('some error log');
|
|
167
|
-
|
|
168
|
-
expect(console.error).toHaveBeenCalledWith(
|
|
169
|
-
JSON.stringify({
|
|
170
|
-
level: 'error',
|
|
171
|
-
message: 'some error log',
|
|
172
|
-
logger: 'lesgo-logger',
|
|
173
|
-
extra: {},
|
|
174
|
-
})
|
|
175
|
-
);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it('test log with custom meta', () => {
|
|
179
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
180
|
-
logger.addMeta({
|
|
181
|
-
someMeta: 'someMeta',
|
|
182
|
-
});
|
|
183
|
-
logger.log('info', 'some info log');
|
|
184
|
-
|
|
185
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
186
|
-
JSON.stringify({
|
|
187
|
-
level: 'info',
|
|
188
|
-
message: 'some info log',
|
|
189
|
-
logger: 'lesgo-logger',
|
|
190
|
-
extra: {
|
|
191
|
-
someMeta: 'someMeta',
|
|
192
|
-
},
|
|
193
|
-
})
|
|
194
|
-
);
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it('test log with custom empty meta', () => {
|
|
198
|
-
console.info = jest.fn();
|
|
199
|
-
|
|
200
|
-
const logger = new LoggerService({ transports: [{ logType: 'console' }] });
|
|
201
|
-
logger.addMeta();
|
|
202
|
-
logger.log('info', 'some info log');
|
|
203
|
-
|
|
204
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
205
|
-
JSON.stringify({
|
|
206
|
-
level: 'info',
|
|
207
|
-
message: 'some info log',
|
|
208
|
-
logger: 'lesgo-logger',
|
|
209
|
-
extra: {},
|
|
210
|
-
})
|
|
211
|
-
);
|
|
212
|
-
});
|
|
213
|
-
|
|
214
|
-
it('test log with lower level', () => {
|
|
215
|
-
console.info = jest.fn();
|
|
216
|
-
|
|
217
|
-
const logger = new LoggerService({
|
|
218
|
-
transports: [{ logType: 'console', level: 'error' }],
|
|
219
|
-
});
|
|
220
|
-
logger.log('info', 'some info log');
|
|
221
|
-
|
|
222
|
-
expect(console.info).not.toHaveBeenCalled();
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
it('test log with additional meta in config', () => {
|
|
226
|
-
const logger = new LoggerService(consoleTransportConfig);
|
|
227
|
-
logger.log('info', 'some info log');
|
|
228
|
-
|
|
229
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
230
|
-
JSON.stringify({
|
|
231
|
-
level: 'info',
|
|
232
|
-
message: 'some info log',
|
|
233
|
-
logger: 'lesgo-logger',
|
|
234
|
-
extra: {
|
|
235
|
-
addMeta: 'config.meta.addMeta',
|
|
236
|
-
},
|
|
237
|
-
tags: {
|
|
238
|
-
addTag: 'config.tags.addTag',
|
|
239
|
-
},
|
|
240
|
-
})
|
|
241
|
-
);
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
it('test log with additional tag and meta in message log', () => {
|
|
245
|
-
const logger = new LoggerService(consoleTransportConfig);
|
|
246
|
-
logger.log('info', 'some info log', {
|
|
247
|
-
tags: { addTag2: 'someTag' },
|
|
248
|
-
someMoreMeta: 'someMetaAdded',
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
expect(console.info).toHaveBeenCalledWith(
|
|
252
|
-
JSON.stringify({
|
|
253
|
-
level: 'info',
|
|
254
|
-
message: 'some info log',
|
|
255
|
-
logger: 'lesgo-logger',
|
|
256
|
-
extra: {
|
|
257
|
-
someMoreMeta: 'someMetaAdded',
|
|
258
|
-
addMeta: 'config.meta.addMeta',
|
|
259
|
-
},
|
|
260
|
-
tags: {
|
|
261
|
-
addTag: 'config.tags.addTag',
|
|
262
|
-
addTag2: 'someTag',
|
|
263
|
-
},
|
|
264
|
-
})
|
|
265
|
-
);
|
|
266
|
-
});
|
|
267
|
-
});
|