lesgo 0.7.8 → 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.
Files changed (318) hide show
  1. package/README.md +5 -4
  2. package/bin/lesgo-scripts.sh +52 -7
  3. package/dist/config/app.d.ts +7 -0
  4. package/dist/config/app.js +9 -0
  5. package/dist/config/aws.d.ts +5 -0
  6. package/dist/config/aws.js +4 -0
  7. package/dist/config/basicAuth.d.ts +7 -0
  8. package/dist/config/basicAuth.js +8 -0
  9. package/dist/config/crypto.d.ts +10 -0
  10. package/dist/config/crypto.js +9 -0
  11. package/dist/config/dynamodb.d.ts +8 -0
  12. package/dist/config/dynamodb.js +14 -0
  13. package/dist/config/elasticache.d.ts +7 -0
  14. package/dist/config/elasticache.js +6 -0
  15. package/dist/config/index.d.ts +11 -0
  16. package/dist/config/index.js +11 -0
  17. package/dist/config/jwt.d.ts +12 -0
  18. package/dist/config/jwt.js +16 -0
  19. package/dist/config/rds.d.ts +12 -0
  20. package/dist/config/rds.js +13 -0
  21. package/dist/config/s3.d.ts +5 -0
  22. package/dist/config/s3.js +5 -0
  23. package/dist/config/secretsManager.d.ts +4 -0
  24. package/dist/config/secretsManager.js +4 -0
  25. package/dist/config/sqs.d.ts +9 -0
  26. package/dist/config/sqs.js +18 -0
  27. package/dist/exceptions/LesgoException.d.ts +6 -0
  28. package/{src → dist}/exceptions/LesgoException.js +5 -4
  29. package/dist/exceptions/index.d.ts +1 -0
  30. package/dist/exceptions/index.js +1 -0
  31. package/dist/middlewares/disconnectMiddleware.d.ts +8 -0
  32. package/dist/middlewares/disconnectMiddleware.js +78 -0
  33. package/dist/middlewares/httpMiddleware.d.ts +12 -0
  34. package/dist/middlewares/httpMiddleware.js +74 -0
  35. package/dist/middlewares/httpResponseMiddleware.d.ts +7 -0
  36. package/dist/middlewares/httpResponseMiddleware.js +128 -0
  37. package/dist/middlewares/index.d.ts +7 -0
  38. package/dist/middlewares/index.js +7 -0
  39. package/dist/middlewares/invokeCommandMiddleware.d.ts +12 -0
  40. package/dist/middlewares/invokeCommandMiddleware.js +70 -0
  41. package/dist/middlewares/sqsMiddleware.d.ts +10 -0
  42. package/dist/middlewares/sqsMiddleware.js +70 -0
  43. package/dist/middlewares/verifyBasicAuthMiddleware.d.ts +8 -0
  44. package/dist/middlewares/verifyBasicAuthMiddleware.js +59 -0
  45. package/dist/middlewares/verifyJwtMiddleware.d.ts +6 -0
  46. package/dist/middlewares/verifyJwtMiddleware.js +37 -0
  47. package/dist/services/DynamoDbService/deleteRecord.d.ts +8 -0
  48. package/dist/services/DynamoDbService/deleteRecord.js +69 -0
  49. package/dist/services/DynamoDbService/getClient.d.ts +7 -0
  50. package/dist/services/DynamoDbService/getClient.js +30 -0
  51. package/dist/services/DynamoDbService/getTableName.d.ts +2 -0
  52. package/dist/services/DynamoDbService/getTableName.js +15 -0
  53. package/dist/services/DynamoDbService/index.d.ts +6 -0
  54. package/dist/services/DynamoDbService/index.js +6 -0
  55. package/dist/services/DynamoDbService/putRecord.d.ts +8 -0
  56. package/dist/services/DynamoDbService/putRecord.js +64 -0
  57. package/dist/services/DynamoDbService/query.d.ts +7 -0
  58. package/dist/services/DynamoDbService/query.js +78 -0
  59. package/dist/services/DynamoDbService/scan.d.ts +7 -0
  60. package/dist/services/DynamoDbService/scan.js +60 -0
  61. package/dist/services/DynamoDbService/updateRecord.d.ts +9 -0
  62. package/dist/services/DynamoDbService/updateRecord.js +89 -0
  63. package/dist/services/ElastiCacheRedisService/deleteRedisCache.d.ts +3 -0
  64. package/dist/services/ElastiCacheRedisService/deleteRedisCache.js +62 -0
  65. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.d.ts +11 -0
  66. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.js +69 -0
  67. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.d.ts +12 -0
  68. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.js +114 -0
  69. package/dist/services/ElastiCacheRedisService/getRedisCache.d.ts +3 -0
  70. package/dist/services/ElastiCacheRedisService/getRedisCache.js +70 -0
  71. package/dist/services/ElastiCacheRedisService/index.d.ts +5 -0
  72. package/dist/services/ElastiCacheRedisService/index.js +5 -0
  73. package/dist/services/ElastiCacheRedisService/setRedisCache.d.ts +6 -0
  74. package/dist/services/ElastiCacheRedisService/setRedisCache.js +77 -0
  75. package/dist/services/JWTService/decodeJwt.d.ts +7 -0
  76. package/dist/services/JWTService/decodeJwt.js +9 -0
  77. package/dist/services/JWTService/getJwtSecret.d.ts +13 -0
  78. package/dist/services/JWTService/getJwtSecret.js +54 -0
  79. package/dist/services/JWTService/index.d.ts +2 -0
  80. package/dist/services/JWTService/index.js +2 -0
  81. package/dist/services/JWTService/sign.d.ts +3 -0
  82. package/dist/services/JWTService/sign.js +31 -0
  83. package/dist/services/JWTService/verify.d.ts +7 -0
  84. package/dist/services/JWTService/verify.js +61 -0
  85. package/dist/services/LoggerService.d.ts +46 -0
  86. package/{src → dist}/services/LoggerService.js +36 -60
  87. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.d.ts +2 -0
  88. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.js +60 -0
  89. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.d.ts +8 -0
  90. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.js +87 -0
  91. package/dist/services/RDSAuroraMySQLProxyService/index.d.ts +3 -0
  92. package/dist/services/RDSAuroraMySQLProxyService/index.js +3 -0
  93. package/dist/services/RDSAuroraMySQLProxyService/query.d.ts +4 -0
  94. package/dist/services/RDSAuroraMySQLProxyService/query.js +63 -0
  95. package/dist/services/S3Service/getClient.d.ts +4 -0
  96. package/dist/services/S3Service/getClient.js +28 -0
  97. package/dist/services/S3Service/getDownloadSignedUrl.d.ts +7 -0
  98. package/dist/services/S3Service/getDownloadSignedUrl.js +58 -0
  99. package/dist/services/S3Service/getHeadObject.d.ts +13 -0
  100. package/dist/services/S3Service/getHeadObject.js +83 -0
  101. package/dist/services/S3Service/getObject.d.ts +10 -0
  102. package/dist/services/S3Service/getObject.js +89 -0
  103. package/dist/services/S3Service/getUploadSignedUrl.d.ts +7 -0
  104. package/dist/services/S3Service/getUploadSignedUrl.js +61 -0
  105. package/dist/services/S3Service/index.d.ts +6 -0
  106. package/dist/services/S3Service/index.js +6 -0
  107. package/dist/services/S3Service/putObject.d.ts +9 -0
  108. package/dist/services/S3Service/putObject.js +77 -0
  109. package/dist/services/SQSService/deleteMessage.d.ts +9 -0
  110. package/dist/services/SQSService/deleteMessage.js +69 -0
  111. package/dist/services/SQSService/dispatch.d.ts +9 -0
  112. package/dist/services/SQSService/dispatch.js +71 -0
  113. package/dist/services/SQSService/getClient.d.ts +4 -0
  114. package/dist/services/SQSService/getClient.js +28 -0
  115. package/dist/services/SQSService/getQueueUrl.d.ts +7 -0
  116. package/dist/services/SQSService/getQueueUrl.js +25 -0
  117. package/dist/services/SQSService/index.d.ts +4 -0
  118. package/dist/services/SQSService/index.js +4 -0
  119. package/dist/services/SQSService/receiveMessages.d.ts +8 -0
  120. package/dist/services/SQSService/receiveMessages.js +65 -0
  121. package/dist/services/SecretsManagerService/getClient.d.ts +7 -0
  122. package/dist/services/SecretsManagerService/getClient.js +28 -0
  123. package/dist/services/SecretsManagerService/getSecretValue.d.ts +7 -0
  124. package/dist/services/SecretsManagerService/getSecretValue.js +65 -0
  125. package/dist/services/SecretsManagerService/index.d.ts +2 -0
  126. package/dist/services/SecretsManagerService/index.js +2 -0
  127. package/dist/services/index.d.ts +1 -0
  128. package/dist/services/index.js +1 -0
  129. package/dist/types/aws.d.ts +8 -0
  130. package/dist/types/aws.js +1 -0
  131. package/dist/utils/cache/redis/deleteCache.d.ts +19 -0
  132. package/dist/utils/cache/redis/deleteCache.js +21 -0
  133. package/dist/utils/cache/redis/getCache.d.ts +22 -0
  134. package/dist/utils/cache/redis/getCache.js +24 -0
  135. package/dist/utils/cache/redis/getClient.d.ts +30 -0
  136. package/dist/utils/cache/redis/getClient.js +32 -0
  137. package/dist/utils/cache/redis/index.d.ts +4 -0
  138. package/dist/utils/cache/redis/index.js +4 -0
  139. package/dist/utils/cache/redis/setCache.d.ts +25 -0
  140. package/dist/utils/cache/redis/setCache.js +26 -0
  141. package/dist/utils/crypto/decrypt.d.ts +33 -0
  142. package/dist/utils/crypto/decrypt.js +59 -0
  143. package/dist/utils/crypto/encrypt.d.ts +31 -0
  144. package/dist/utils/crypto/encrypt.js +41 -0
  145. package/dist/utils/crypto/hash.d.ts +31 -0
  146. package/dist/utils/crypto/hash.js +56 -0
  147. package/dist/utils/crypto/index.d.ts +3 -0
  148. package/dist/utils/crypto/index.js +3 -0
  149. package/dist/utils/crypto/validateEncryptionFields.d.ts +19 -0
  150. package/dist/utils/crypto/validateEncryptionFields.js +71 -0
  151. package/dist/utils/db/mysql/proxy/disconnect.d.ts +2 -0
  152. package/dist/utils/db/mysql/proxy/disconnect.js +5 -0
  153. package/dist/utils/db/mysql/proxy/disconnectDb.d.ts +2 -0
  154. package/dist/utils/db/mysql/proxy/disconnectDb.js +5 -0
  155. package/dist/utils/db/mysql/proxy/getClient.d.ts +4 -0
  156. package/dist/utils/db/mysql/proxy/getClient.js +5 -0
  157. package/dist/utils/db/mysql/proxy/index.d.ts +3 -0
  158. package/dist/utils/db/mysql/proxy/index.js +3 -0
  159. package/dist/utils/db/mysql/proxy/query.d.ts +4 -0
  160. package/dist/utils/db/mysql/proxy/query.js +45 -0
  161. package/dist/utils/dynamodb/deleteRecord.d.ts +5 -0
  162. package/dist/utils/dynamodb/deleteRecord.js +39 -0
  163. package/dist/utils/dynamodb/getClient.d.ts +3 -0
  164. package/dist/utils/dynamodb/getClient.js +5 -0
  165. package/dist/utils/dynamodb/index.d.ts +6 -0
  166. package/dist/utils/dynamodb/index.js +6 -0
  167. package/dist/utils/dynamodb/putRecord.d.ts +4 -0
  168. package/dist/utils/dynamodb/putRecord.js +39 -0
  169. package/dist/utils/dynamodb/query.d.ts +5 -0
  170. package/dist/utils/dynamodb/query.js +52 -0
  171. package/dist/utils/dynamodb/scan.d.ts +4 -0
  172. package/dist/utils/dynamodb/scan.js +40 -0
  173. package/dist/utils/dynamodb/updateRecord.d.ts +5 -0
  174. package/dist/utils/dynamodb/updateRecord.js +53 -0
  175. package/dist/utils/formatUnixTimestamp.d.ts +8 -0
  176. package/dist/utils/formatUnixTimestamp.js +17 -0
  177. package/dist/utils/generateUid.d.ts +13 -0
  178. package/{src → dist}/utils/generateUid.js +9 -4
  179. package/dist/utils/getCurrentDatetime.d.ts +2 -0
  180. package/dist/utils/getCurrentDatetime.js +4 -0
  181. package/dist/utils/getCurrentTimestamp.d.ts +7 -0
  182. package/dist/utils/getCurrentTimestamp.js +9 -0
  183. package/dist/utils/getJwtSubFromAuthHeader.d.ts +9 -0
  184. package/dist/utils/getJwtSubFromAuthHeader.js +24 -0
  185. package/dist/utils/index.d.ts +9 -0
  186. package/dist/utils/index.js +9 -0
  187. package/dist/utils/isDecimal.d.ts +8 -0
  188. package/dist/utils/isDecimal.js +9 -0
  189. package/dist/utils/isEmail.d.ts +9 -0
  190. package/{src → dist}/utils/isEmail.js +9 -4
  191. package/dist/utils/isEmpty.d.ts +8 -0
  192. package/dist/utils/isEmpty.js +19 -0
  193. package/dist/utils/jwt/index.d.ts +2 -0
  194. package/dist/utils/jwt/index.js +2 -0
  195. package/dist/utils/jwt/sign.d.ts +3 -0
  196. package/dist/utils/jwt/sign.js +5 -0
  197. package/dist/utils/jwt/verify.d.ts +3 -0
  198. package/dist/utils/jwt/verify.js +12 -0
  199. package/dist/utils/logger.d.ts +20 -0
  200. package/dist/utils/logger.js +38 -0
  201. package/dist/utils/s3/getClient.d.ts +3 -0
  202. package/dist/utils/s3/getClient.js +5 -0
  203. package/dist/utils/s3/getDownloadSignedUrl.d.ts +5 -0
  204. package/dist/utils/s3/getDownloadSignedUrl.js +39 -0
  205. package/dist/utils/s3/getHeadObject.d.ts +10 -0
  206. package/dist/utils/s3/getHeadObject.js +39 -0
  207. package/dist/utils/s3/getObject.d.ts +13 -0
  208. package/dist/utils/s3/getObject.js +51 -0
  209. package/dist/utils/s3/getUploadSignedUrl.d.ts +5 -0
  210. package/dist/utils/s3/getUploadSignedUrl.js +39 -0
  211. package/dist/utils/s3/index.d.ts +6 -0
  212. package/dist/utils/s3/index.js +6 -0
  213. package/dist/utils/s3/putObject.d.ts +5 -0
  214. package/dist/utils/s3/putObject.js +39 -0
  215. package/dist/utils/secretsmanager/getClient.d.ts +3 -0
  216. package/dist/utils/secretsmanager/getClient.js +5 -0
  217. package/dist/utils/secretsmanager/getSecretValue.d.ts +4 -0
  218. package/dist/utils/secretsmanager/getSecretValue.js +68 -0
  219. package/dist/utils/secretsmanager/index.d.ts +2 -0
  220. package/dist/utils/secretsmanager/index.js +2 -0
  221. package/dist/utils/sqs/deleteMessage.d.ts +5 -0
  222. package/dist/utils/sqs/deleteMessage.js +39 -0
  223. package/dist/utils/sqs/dispatch.d.ts +5 -0
  224. package/dist/utils/sqs/dispatch.js +39 -0
  225. package/dist/utils/sqs/getClient.d.ts +3 -0
  226. package/dist/utils/sqs/getClient.js +5 -0
  227. package/dist/utils/sqs/index.d.ts +4 -0
  228. package/dist/utils/sqs/index.js +4 -0
  229. package/dist/utils/sqs/receiveMessages.d.ts +5 -0
  230. package/dist/utils/sqs/receiveMessages.js +39 -0
  231. package/dist/utils/validateFields.d.ts +22 -0
  232. package/{src → dist}/utils/validateFields.js +13 -19
  233. package/package.json +145 -34
  234. package/CHANGELOG.md +0 -9
  235. package/src/exceptions/__tests__/LesgoException.spec.js +0 -24
  236. package/src/exceptions/index.js +0 -4
  237. package/src/index.js +0 -4
  238. package/src/middlewares/__mocks__/ValidationErrorException.js +0 -18
  239. package/src/middlewares/__tests__/basicAuthMiddleware.spec.js +0 -225
  240. package/src/middlewares/__tests__/clientAuthMiddleware.spec.js +0 -137
  241. package/src/middlewares/__tests__/errorHttpResponseMiddleware.spec.js +0 -190
  242. package/src/middlewares/__tests__/gzipHttpResponse.spec.js +0 -185
  243. package/src/middlewares/__tests__/httpNoOutputMiddleware.spec.js +0 -199
  244. package/src/middlewares/__tests__/normalizeHttpRequestMiddleware.spec.js +0 -181
  245. package/src/middlewares/__tests__/normalizeSQSMessageMiddleware.spec.js +0 -120
  246. package/src/middlewares/__tests__/serverAuthMiddleware.spec.js +0 -170
  247. package/src/middlewares/__tests__/successHttpResponseMiddleware.spec.js +0 -159
  248. package/src/middlewares/__tests__/verifyJwtMiddleware.spec.js +0 -222
  249. package/src/middlewares/basicAuthMiddleware.js +0 -145
  250. package/src/middlewares/clientAuthMiddleware.js +0 -82
  251. package/src/middlewares/errorHttpResponseMiddleware.js +0 -99
  252. package/src/middlewares/gzipHttpResponse.js +0 -98
  253. package/src/middlewares/httpMiddleware.js +0 -19
  254. package/src/middlewares/httpNoOutputMiddleware.js +0 -87
  255. package/src/middlewares/index.js +0 -15
  256. package/src/middlewares/normalizeHttpRequestMiddleware.js +0 -101
  257. package/src/middlewares/normalizeSQSMessageMiddleware.js +0 -67
  258. package/src/middlewares/serverAuthMiddleware.js +0 -29
  259. package/src/middlewares/successHttpResponseMiddleware.js +0 -83
  260. package/src/middlewares/verifyJwtMiddleware.js +0 -62
  261. package/src/services/AuroraDbRDSProxyService.js +0 -182
  262. package/src/services/AuroraDbService.js +0 -111
  263. package/src/services/DynamoDbService.js +0 -177
  264. package/src/services/ElastiCacheService.js +0 -17
  265. package/src/services/ElasticsearchService.js +0 -181
  266. package/src/services/FirebaseAdminService.js +0 -108
  267. package/src/services/JwtService.js +0 -52
  268. package/src/services/S3Service.js +0 -59
  269. package/src/services/SQSService.js +0 -65
  270. package/src/services/__tests__/AuroraDbRDSProxyService.spec.js +0 -278
  271. package/src/services/__tests__/AuroraDbService.spec.js +0 -211
  272. package/src/services/__tests__/AwsElasticsearchConnection.spec.js +0 -89
  273. package/src/services/__tests__/DynamoDbService.spec.js +0 -314
  274. package/src/services/__tests__/ElasticsearchService.spec.js +0 -201
  275. package/src/services/__tests__/FirebaseAdminService.spec.js +0 -356
  276. package/src/services/__tests__/JwtService.spec.js +0 -35
  277. package/src/services/__tests__/LengthAwarePaginator.spec.js +0 -223
  278. package/src/services/__tests__/LoggerService.spec.js +0 -252
  279. package/src/services/__tests__/Paginator.spec.js +0 -383
  280. package/src/services/__tests__/S3Service.spec.js +0 -55
  281. package/src/services/__tests__/SQSService.spec.js +0 -47
  282. package/src/services/__tests__/SignedRequest.spec.js +0 -103
  283. package/src/services/aws/AwsElasticsearchConnection.js +0 -59
  284. package/src/services/aws/SignedRequest.js +0 -158
  285. package/src/services/index.js +0 -19
  286. package/src/services/pagination/LengthAwarePaginator.js +0 -49
  287. package/src/services/pagination/Paginator.js +0 -260
  288. package/src/utils/__mocks__/db.js +0 -109
  289. package/src/utils/__tests__/cache.spec.js +0 -131
  290. package/src/utils/__tests__/crypto.spec.js +0 -122
  291. package/src/utils/__tests__/db.spec.js +0 -70
  292. package/src/utils/__tests__/dynamodb.spec.js +0 -27
  293. package/src/utils/__tests__/elasticsearch.spec.js +0 -43
  294. package/src/utils/__tests__/generateUid.spec.js +0 -36
  295. package/src/utils/__tests__/getJwtSubFromAuthHeader.spec.js +0 -20
  296. package/src/utils/__tests__/isDecimal.spec.js +0 -12
  297. package/src/utils/__tests__/isEmail.spec.js +0 -28
  298. package/src/utils/__tests__/isEmpty.spec.js +0 -31
  299. package/src/utils/__tests__/logger.spec.js +0 -11
  300. package/src/utils/__tests__/objectStore.spec.js +0 -67
  301. package/src/utils/__tests__/prepSQLInsertParams.spec.js +0 -46
  302. package/src/utils/__tests__/prepSQLUpdateParams.spec.js +0 -36
  303. package/src/utils/__tests__/queue.spec.js +0 -54
  304. package/src/utils/__tests__/validateFields.spec.js +0 -374
  305. package/src/utils/cache.js +0 -215
  306. package/src/utils/crypto.js +0 -77
  307. package/src/utils/db.js +0 -17
  308. package/src/utils/dynamodb.js +0 -6
  309. package/src/utils/elasticsearch.js +0 -20
  310. package/src/utils/getJwtSubFromAuthHeader.js +0 -18
  311. package/src/utils/index.js +0 -26
  312. package/src/utils/isDecimal.js +0 -2
  313. package/src/utils/isEmpty.js +0 -6
  314. package/src/utils/logger.js +0 -25
  315. package/src/utils/objectStore.js +0 -11
  316. package/src/utils/prepSQLInsertParams.js +0 -21
  317. package/src/utils/prepSQLUpdateParams.js +0 -25
  318. package/src/utils/queue.js +0 -11
@@ -1,252 +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
- info: 2,
17
- debug: 3,
18
- });
19
- });
20
-
21
- it('test instantiate LoggerService with console transport', () => {
22
- const logger = new LoggerService({
23
- transports: [
24
- {
25
- logType: 'console',
26
- level: 'info',
27
- config: {
28
- getCreatedAt: true,
29
- },
30
- },
31
- ],
32
- });
33
-
34
- expect(logger.logger).toBe('lesgo-logger');
35
- expect(logger.meta).toMatchObject({});
36
- expect(logger.transports[0]).toMatchObject({
37
- logType: 'console',
38
- level: 'info',
39
- config: {
40
- getCreatedAt: true,
41
- },
42
- });
43
- });
44
-
45
- it('test instantiate LoggerService with default meta', () => {
46
- const logger = new LoggerService({
47
- defaultMeta: {
48
- someMeta1: 'someMeta1',
49
- someMeta2: 'someMeta2',
50
- },
51
- });
52
-
53
- expect(logger.logger).toBe('lesgo-logger');
54
- expect(logger.meta).toMatchObject({
55
- someMeta1: 'someMeta1',
56
- someMeta2: 'someMeta2',
57
- });
58
- });
59
- });
60
-
61
- describe('ServicesGroup: test log LoggerService with console transport', () => {
62
- const consoleTransportConfig = {
63
- transports: [
64
- {
65
- logType: 'console',
66
- level: 'info',
67
- config: {
68
- tags: {
69
- addTag: 'config.tags.addTag',
70
- },
71
- meta: {
72
- addMeta: 'config.meta.addMeta',
73
- },
74
- },
75
- },
76
- ],
77
- };
78
-
79
- it('test log with undefined level', () => {
80
- const logger = new LoggerService();
81
- expect(() => logger.log('invalidLevel', 'some message')).toThrow(
82
- new LesgoException('Invalid level provided in log()')
83
- );
84
- });
85
-
86
- it('test log with undefined transport', () => {
87
- const logger = new LoggerService();
88
- logger.log('info', 'some info log');
89
-
90
- expect(console.info).not.toHaveBeenCalled();
91
- });
92
-
93
- it('test log with log method', () => {
94
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
95
- logger.log('info', 'some info log');
96
-
97
- expect(console.info).toHaveBeenCalledWith(
98
- JSON.stringify({
99
- level: 'info',
100
- message: 'some info log',
101
- logger: 'lesgo-logger',
102
- extra: {},
103
- })
104
- );
105
- });
106
-
107
- it('test log with info level', () => {
108
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
109
- logger.info('some info log');
110
-
111
- expect(console.info).toHaveBeenCalledWith(
112
- JSON.stringify({
113
- level: 'info',
114
- message: 'some info log',
115
- logger: 'lesgo-logger',
116
- extra: {},
117
- })
118
- );
119
- });
120
-
121
- it('test log with debug level', () => {
122
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
123
- logger.debug('some debug log');
124
-
125
- expect(console.debug).toHaveBeenCalledWith(
126
- JSON.stringify({
127
- level: 'debug',
128
- message: 'some debug log',
129
- logger: 'lesgo-logger',
130
- extra: {},
131
- })
132
- );
133
- });
134
-
135
- it('test log with warn level', () => {
136
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
137
- logger.warn('some warn log');
138
-
139
- expect(console.warn).toHaveBeenCalledWith(
140
- JSON.stringify({
141
- level: 'warn',
142
- message: 'some warn log',
143
- logger: 'lesgo-logger',
144
- extra: {},
145
- })
146
- );
147
- });
148
-
149
- it('test log with error level', () => {
150
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
151
- logger.error('some error log');
152
-
153
- expect(console.error).toHaveBeenCalledWith(
154
- JSON.stringify({
155
- level: 'error',
156
- message: 'some error log',
157
- logger: 'lesgo-logger',
158
- extra: {},
159
- })
160
- );
161
- });
162
-
163
- it('test log with custom meta', () => {
164
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
165
- logger.addMeta({
166
- someMeta: 'someMeta',
167
- });
168
- logger.log('info', 'some info log');
169
-
170
- expect(console.info).toHaveBeenCalledWith(
171
- JSON.stringify({
172
- level: 'info',
173
- message: 'some info log',
174
- logger: 'lesgo-logger',
175
- extra: {
176
- someMeta: 'someMeta',
177
- },
178
- })
179
- );
180
- });
181
-
182
- it('test log with custom empty meta', () => {
183
- console.info = jest.fn();
184
-
185
- const logger = new LoggerService({ transports: [{ logType: 'console' }] });
186
- logger.addMeta();
187
- logger.log('info', 'some info log');
188
-
189
- expect(console.info).toHaveBeenCalledWith(
190
- JSON.stringify({
191
- level: 'info',
192
- message: 'some info log',
193
- logger: 'lesgo-logger',
194
- extra: {},
195
- })
196
- );
197
- });
198
-
199
- it('test log with lower level', () => {
200
- console.info = jest.fn();
201
-
202
- const logger = new LoggerService({
203
- transports: [{ logType: 'console', level: 'error' }],
204
- });
205
- logger.log('info', 'some info log');
206
-
207
- expect(console.info).not.toHaveBeenCalled();
208
- });
209
-
210
- it('test log with additional meta in config', () => {
211
- const logger = new LoggerService(consoleTransportConfig);
212
- logger.log('info', 'some info log');
213
-
214
- expect(console.info).toHaveBeenCalledWith(
215
- JSON.stringify({
216
- level: 'info',
217
- message: 'some info log',
218
- logger: 'lesgo-logger',
219
- extra: {
220
- addMeta: 'config.meta.addMeta',
221
- },
222
- tags: {
223
- addTag: 'config.tags.addTag',
224
- },
225
- })
226
- );
227
- });
228
-
229
- it('test log with additional tag and meta in message log', () => {
230
- const logger = new LoggerService(consoleTransportConfig);
231
- logger.log('info', 'some info log', {
232
- tags: { addTag2: 'someTag' },
233
- someMoreMeta: 'someMetaAdded',
234
- });
235
-
236
- expect(console.info).toHaveBeenCalledWith(
237
- JSON.stringify({
238
- level: 'info',
239
- message: 'some info log',
240
- logger: 'lesgo-logger',
241
- extra: {
242
- someMoreMeta: 'someMetaAdded',
243
- addMeta: 'config.meta.addMeta',
244
- },
245
- tags: {
246
- addTag: 'config.tags.addTag',
247
- addTag2: 'someTag',
248
- },
249
- })
250
- );
251
- });
252
- });
@@ -1,383 +0,0 @@
1
- import Paginator from '../pagination/Paginator';
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/Paginator';
16
-
17
- describe('test Paginator instantiate', () => {
18
- it.each`
19
- currentPage | perPage | expectedCount | firstItem | lastItem
20
- ${undefined} | ${undefined} | ${10} | ${mockData} | ${mockData}
21
- ${undefined} | ${5} | ${5} | ${mockDataFirstItem} | ${mockDataLastItem}
22
- `(
23
- 'should not throw exception if page is $page and perPage is $perPage',
24
- async ({ currentPage, perPage, expectedCount, firstItem, lastItem }) => {
25
- const paginator = new Paginator(
26
- db,
27
- 'SELECT * FROM tests',
28
- {},
29
- {
30
- perPage,
31
- currentPage,
32
- }
33
- );
34
-
35
- expect(await paginator.count()).toEqual(expectedCount);
36
- expect(paginator.currentPage()).toEqual(1);
37
- expect(await paginator.firstItem()).toMatchObject(firstItem);
38
- expect(await paginator.lastItem()).toMatchObject(lastItem);
39
- expect(paginator.perPage()).toEqual(expectedCount);
40
- expect(await paginator.total()).toEqual(10);
41
- }
42
- );
43
-
44
- it('should be instantiated without options', async () => {
45
- const paginator = new Paginator(db, 'SELECT * FROM tests', {});
46
-
47
- expect(await paginator.count()).toEqual(10);
48
- expect(paginator.currentPage()).toEqual(1);
49
- expect(await paginator.firstItem()).toMatchObject(mockData);
50
- expect(await paginator.lastItem()).toMatchObject(mockData);
51
- expect(paginator.perPage()).toEqual(10);
52
- expect(await paginator.total()).toEqual(10);
53
- });
54
-
55
- it.each`
56
- currentPage | perPage | errorName | errorMessage | errorCode | errorStatusCode
57
- ${'sample'} | ${10} | ${'LesgoException'} | ${"Invalid type for 'currentPage', expecting 'number'"} | ${`${FILE}::FIELD_VALIDATION_EXCEPTION`} | ${500}
58
- ${1} | ${'sample'} | ${'LesgoException'} | ${"Invalid type for 'perPage', expecting 'number'"} | ${`${FILE}::FIELD_VALIDATION_EXCEPTION`} | ${500}
59
- `(
60
- 'should throw $errorMessage when page is $page and perPage is $perPage',
61
- ({
62
- currentPage,
63
- perPage,
64
- errorName,
65
- errorMessage,
66
- errorCode,
67
- errorStatusCode,
68
- }) => {
69
- try {
70
- const values = new Paginator(
71
- db,
72
- 'SELECT * FROM tests',
73
- {},
74
- {
75
- perPage,
76
- currentPage,
77
- }
78
- );
79
- expect(values).toThrow();
80
- } catch (err) {
81
- expect(err.name).toEqual(errorName);
82
- expect(err.message).toEqual(errorMessage);
83
- expect(err.code).toEqual(errorCode);
84
- expect(err.statusCode).toEqual(errorStatusCode);
85
- }
86
- }
87
- );
88
-
89
- it('should return the first item of the result', async () => {
90
- const paginator = new Paginator(
91
- db,
92
- 'SELECT * FROM tests',
93
- {},
94
- {
95
- perPage: 5,
96
- }
97
- );
98
-
99
- expect(await paginator.firstItem()).toMatchObject(mockDataFirstItem);
100
- });
101
- it('should return the last item of the result', async () => {
102
- const paginator = new Paginator(
103
- db,
104
- 'SELECT * FROM tests',
105
- {},
106
- {
107
- perPage: 5,
108
- }
109
- );
110
-
111
- expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
112
- });
113
- it('should return the defined per page', () => {
114
- const paginator = new Paginator(
115
- db,
116
- 'SELECT * FROM tests',
117
- {},
118
- {
119
- perPage: 5,
120
- }
121
- );
122
-
123
- expect(paginator.perPage()).toEqual(5);
124
- });
125
- it('should return the previous page if exist', () => {
126
- const paginator1 = new Paginator(
127
- db,
128
- 'SELECT * FROM tests',
129
- {},
130
- {
131
- perPage: 5,
132
- currentPage: 2,
133
- }
134
- );
135
- expect(paginator1.previousPage()).toEqual(1);
136
-
137
- const paginator2 = new Paginator(
138
- db,
139
- 'SELECT * FROM tests',
140
- {},
141
- {
142
- perPage: 5,
143
- currentPage: 1,
144
- }
145
- );
146
- expect(paginator2.previousPage()).toEqual(false);
147
- });
148
- it('should return the next page if exist', async () => {
149
- const paginator1 = new Paginator(
150
- db,
151
- 'SELECT * FROM tests',
152
- {},
153
- {
154
- perPage: 5,
155
- }
156
- );
157
- expect(await paginator1.nextPage()).toEqual(2);
158
-
159
- const paginator2 = new Paginator(
160
- db,
161
- 'SELECT * FROM tests',
162
- {},
163
- {
164
- perPage: 5,
165
- currentPage: 2,
166
- }
167
- );
168
- expect(await paginator2.nextPage()).toEqual(3);
169
-
170
- const paginator3 = new Paginator(
171
- db,
172
- 'SELECT * FROM tests',
173
- {},
174
- {
175
- perPage: 5,
176
- currentPage: 3,
177
- }
178
- );
179
- expect(await paginator3.nextPage()).toEqual(false);
180
- });
181
- });
182
-
183
- describe('test count() usage', () => {
184
- it('should count number of items of the current page', async () => {
185
- const paginator = new Paginator(
186
- db,
187
- 'SELECT * FROM tests',
188
- {},
189
- {
190
- perPage: 5,
191
- }
192
- );
193
-
194
- expect(await paginator.count()).toEqual(5);
195
- });
196
- it('should only run executeQuery once', async () => {
197
- const paginator = new Paginator(
198
- db,
199
- 'SELECT * FROM tests',
200
- {},
201
- {
202
- perPage: 5,
203
- }
204
- );
205
-
206
- await paginator.count();
207
- await paginator.count();
208
- await paginator.count();
209
- await paginator.count();
210
- await paginator.count();
211
-
212
- expect(db.select).toHaveBeenCalledTimes(1);
213
- });
214
- });
215
-
216
- describe('test currentPage() usage', () => {
217
- it('should return 1 as current page if no currentPage is defined', () => {
218
- const paginator = new Paginator(
219
- db,
220
- 'SELECT * FROM tests',
221
- {},
222
- {
223
- perPage: 5,
224
- }
225
- );
226
-
227
- expect(paginator.currentPage()).toEqual(1);
228
- });
229
- it('should return the defined current page on instantiation', () => {
230
- const paginator = new Paginator(
231
- db,
232
- 'SELECT * FROM tests',
233
- {},
234
- {
235
- perPage: 5,
236
- currentPage: 2,
237
- }
238
- );
239
-
240
- expect(paginator.currentPage()).toEqual(2);
241
- });
242
- });
243
-
244
- describe('test items() usage', () => {
245
- it('should return all results from the current page', async () => {
246
- const paginator = new Paginator(
247
- db,
248
- 'SELECT * FROM tests',
249
- {},
250
- {
251
- perPage: 5,
252
- }
253
- );
254
-
255
- expect(await paginator.items()).toMatchObject([
256
- { ...mockDataFirstItem },
257
- { ...mockData },
258
- { ...mockData },
259
- { ...mockData },
260
- { ...mockDataLastItem },
261
- ]);
262
- });
263
-
264
- it('should only run executeQuery once', async () => {
265
- const paginator = new Paginator(
266
- db,
267
- 'SELECT * FROM tests',
268
- {},
269
- {
270
- perPage: 5,
271
- }
272
- );
273
-
274
- await paginator.items();
275
- await paginator.items();
276
- await paginator.items();
277
- await paginator.items();
278
-
279
- expect(db.select).toHaveBeenCalledTimes(1);
280
- });
281
- });
282
-
283
- describe('test toObject() usage', () => {
284
- it('should return object version of the paginator', async () => {
285
- const paginator = new Paginator(
286
- db,
287
- 'SELECT * FROM tests',
288
- {},
289
- {
290
- perPage: 5,
291
- }
292
- );
293
-
294
- expect(await paginator.toObject()).toMatchObject({
295
- count: 5,
296
- previous_page: false,
297
- current_page: 1,
298
- next_page: 2,
299
- last_page: 2,
300
- per_page: 5,
301
- total: 10,
302
- items: [
303
- { ...mockDataFirstItem },
304
- { ...mockData },
305
- { ...mockData },
306
- { ...mockData },
307
- { ...mockDataLastItem },
308
- ],
309
- });
310
- });
311
-
312
- it('should only run executeQuery twice', async () => {
313
- const paginator = new Paginator(
314
- db,
315
- 'SELECT * FROM tests',
316
- {},
317
- {
318
- perPage: 5,
319
- }
320
- );
321
-
322
- await paginator.toObject();
323
- await paginator.toObject();
324
- await paginator.toObject();
325
- await paginator.toObject();
326
-
327
- expect(db.select).toHaveBeenCalledTimes(2);
328
- });
329
- });
330
-
331
- describe('test total() usage', () => {
332
- it('should get total number of data using default countTotalItems method', async () => {
333
- const paginator = new Paginator(
334
- db,
335
- 'SELECT * FROM total_tests',
336
- {},
337
- {
338
- currentPage: 1,
339
- }
340
- );
341
-
342
- expect(await paginator.total()).toEqual(30);
343
- expect(db.select).toHaveBeenCalled();
344
- });
345
- });
346
-
347
- describe('test lastPage() usage', () => {
348
- it('should get the last page using default countTotalItems method when getting total data', async () => {
349
- const paginator1 = new Paginator(
350
- db,
351
- 'SELECT * FROM total_tests',
352
- {},
353
- {
354
- currentPage: 1,
355
- }
356
- );
357
- expect(await paginator1.lastPage()).toEqual(3);
358
-
359
- const paginator2 = new Paginator(
360
- db,
361
- 'SELECT * FROM total_tests',
362
- {},
363
- {
364
- perPage: 5,
365
- currentPage: 1,
366
- }
367
- );
368
- expect(await paginator2.lastPage()).toEqual(6);
369
-
370
- const paginator3 = new Paginator(
371
- db,
372
- 'SELECT * FROM total_tests',
373
- {},
374
- {
375
- perPage: 7,
376
- currentPage: 1,
377
- }
378
- );
379
- expect(await paginator3.lastPage()).toEqual(5);
380
-
381
- expect(db.select).toHaveBeenCalled();
382
- });
383
- });
@@ -1,55 +0,0 @@
1
- import { S3 } from 'aws-sdk';
2
-
3
- import S3Service from '../S3Service';
4
-
5
- describe('ServicesGroup: test S3Service instantiation', () => {
6
- it('test instantiate default S3Service', () => {
7
- // eslint-disable-next-line no-unused-vars
8
- const s3Instance = new S3Service();
9
-
10
- expect(S3).toHaveBeenCalledWith({});
11
- });
12
-
13
- it('test instantiate S3Service with custom options', () => {
14
- // eslint-disable-next-line no-unused-vars
15
- const s3Instance = new S3Service({
16
- accessKeyId: 'aws.s3.options.accessKeyId',
17
- secretAccessKey: 'aws.s3.options.secretAccessKey',
18
- region: 'aws.s3.options.region',
19
- });
20
-
21
- expect(S3).toHaveBeenCalledWith({
22
- accessKeyId: 'aws.s3.options.accessKeyId',
23
- secretAccessKey: 'aws.s3.options.secretAccessKey',
24
- region: 'aws.s3.options.region',
25
- });
26
- });
27
- });
28
-
29
- describe('ServicesGroup: test S3Service usage', () => {
30
- it('test getObject', () => {
31
- // eslint-disable-next-line no-unused-vars
32
- const s3Instance = new S3Service();
33
-
34
- return expect(
35
- s3Instance.getObject('someKey', 'someBucket')
36
- ).resolves.toMatchObject({
37
- LastModified: '2019-09-04T05:00:57.000Z',
38
- ContentLength: 27892,
39
- ETag: '38e6c8a510f49edec0ad4244a7665312',
40
- ContentType: '.jpg',
41
- Metadata: {},
42
- Body: {
43
- type: 'Buffer',
44
- data: [],
45
- },
46
- mocked: {
47
- opts: {},
48
- params: {
49
- Key: 'someKey',
50
- Bucket: 'someBucket',
51
- },
52
- },
53
- });
54
- });
55
- });