@axinom/mosaic-service-common 0.36.0-rc.9 → 0.36.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.
@@ -29,6 +29,6 @@ export declare const customizeGraphQlErrorFields: (errorDataMapper?: MosaicError
29
29
  code?: string;
30
30
  extensions?: Dict<unknown>;
31
31
  };
32
- export declare const logGraphQlError: (writeLogMapper?: WriteLogMapper, logger?: Logger) => (error: GraphQLErrorExtended, graphQlOperations?: GraphQlOperation[]) => void;
32
+ export declare const logGraphQlError: (writeLogMapper?: WriteLogMapper, logger?: Logger) => (error: GraphQLErrorExtended, originalError?: Error | null, graphQlOperations?: GraphQlOperation[]) => void;
33
33
  export {};
34
34
  //# sourceMappingURL=graphql-errors-customization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-errors-customization.d.ts","sourceRoot":"","sources":["../../../src/common/errors/graphql-errors-customization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGhF;;GAEG;AACH,UAAU,gBAAgB;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAClD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6CD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,qBACpB,iBAAiB,aAE5B,YAAY,kBACH,KAAK,GAAG,IAAI,KACzB;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;CAqB5B,CAAC;AAEF,eAAO,MAAM,eAAe,oBACT,cAAc,WACvB,MAAM,aAEN,oBAAoB,sBAAsB,gBAAgB,EAAE,KAAG,IA2BxE,CAAC"}
1
+ {"version":3,"file":"graphql-errors-customization.d.ts","sourceRoot":"","sources":["../../../src/common/errors/graphql-errors-customization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGhF;;GAEG;AACH,UAAU,gBAAgB;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAClD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6CD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,qBACpB,iBAAiB,aAE5B,YAAY,kBACH,KAAK,GAAG,IAAI,KACzB;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;CAqB5B,CAAC;AAEF,eAAO,MAAM,eAAe,oBACT,cAAc,WACvB,MAAM,aAGL,oBAAoB,kBACX,KAAK,GAAG,IAAI,sBACR,gBAAgB,EAAE,KACrC,IA4BJ,CAAC"}
@@ -66,9 +66,8 @@ const customizeGraphQlErrorFields = (errorDataMapper) => {
66
66
  };
67
67
  exports.customizeGraphQlErrorFields = customizeGraphQlErrorFields;
68
68
  const logGraphQlError = (writeLogMapper, logger = new logging_1.Logger({ context: 'GraphQLErrorHandler' })) => {
69
- return (error, graphQlOperations) => {
70
- var _a, _b;
71
- const { message } = error, _c = error.extensions, { timestamp: logtime, exception: { code } } = _c, rest = __rest(_c, ["timestamp", "exception"]);
69
+ return (error, originalError, graphQlOperations) => {
70
+ const { message } = error, _a = error.extensions, { timestamp: logtime, exception: { code } } = _a, rest = __rest(_a, ["timestamp", "exception"]);
72
71
  const log = {
73
72
  logtime,
74
73
  message,
@@ -76,8 +75,8 @@ const logGraphQlError = (writeLogMapper, logger = new logging_1.Logger({ context
76
75
  graphQlOperations })),
77
76
  };
78
77
  writeLogMapper
79
- ? writeLogMapper(log, (_a = error.originalError) !== null && _a !== void 0 ? _a : error, logger)
80
- : logger.log((_b = error.originalError) !== null && _b !== void 0 ? _b : error, log);
78
+ ? writeLogMapper(log, originalError !== null && originalError !== void 0 ? originalError : error, logger)
79
+ : logger.log(originalError !== null && originalError !== void 0 ? originalError : error, log);
81
80
  };
82
81
  };
83
82
  exports.logGraphQlError = logGraphQlError;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-errors-customization.js","sourceRoot":"","sources":["../../../src/common/errors/graphql-errors-customization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-errors-customization.js","sourceRoot":"","sources":["../../../src/common/errors/graphql-errors-customization.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-service-common",
3
- "version": "0.36.0-rc.9",
3
+ "version": "0.36.0",
4
4
  "description": "Common helpers and PostgreSQL-related functionality",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -65,5 +65,5 @@
65
65
  "publishConfig": {
66
66
  "access": "public"
67
67
  },
68
- "gitHead": "294d6a683845640ef70dc4ed5e9f057dfaacc388"
68
+ "gitHead": "cb1823de8e408b481091bfe0b0107815e8b49880"
69
69
  }
@@ -40,6 +40,7 @@ describe('GraphQL errors customization', () => {
40
40
  let testLogger: Logger;
41
41
  let timestampBeforeTest: Date;
42
42
  let errorOverride: jest.SpyInstance;
43
+ let debugOverride: jest.SpyInstance;
43
44
 
44
45
  const defaultCustomizer = customizeGraphQlErrorFields(defaultPgErrorMapper);
45
46
 
@@ -50,9 +51,12 @@ describe('GraphQL errors customization', () => {
50
51
 
51
52
  beforeEach(async () => {
52
53
  timestampBeforeTest = createOffsetDate(-20);
53
- errorOverride = await jest
54
+ errorOverride = jest
54
55
  .spyOn(console, 'error')
55
56
  .mockImplementation((obj) => JSON.parse(obj));
57
+ debugOverride = jest
58
+ .spyOn(console, 'debug')
59
+ .mockImplementation((obj) => JSON.parse(obj));
56
60
  });
57
61
 
58
62
  afterEach(async () => {
@@ -117,16 +121,16 @@ describe('GraphQL errors customization', () => {
117
121
  log: jest.fn(),
118
122
  };
119
123
  const mockWriteLogMapper = jest.fn();
124
+ const originalError = new Error('original');
120
125
  const error = createGraphQLError('Sample error message', {
121
126
  extensions: {
122
127
  timestamp: '2023-07-20T12:00:00',
123
128
  exception: { code: 'ERROR_CODE' },
124
129
  },
125
- originalError: new Error('original'),
126
130
  });
127
131
 
128
132
  const logFunction = logGraphQlError(mockWriteLogMapper, mockLogger as any);
129
- logFunction(error);
133
+ logFunction(error, originalError);
130
134
 
131
135
  expect(mockWriteLogMapper).toHaveBeenCalledTimes(1);
132
136
  expect(mockWriteLogMapper).toHaveBeenCalledWith(
@@ -137,26 +141,61 @@ describe('GraphQL errors customization', () => {
137
141
  code: 'ERROR_CODE',
138
142
  },
139
143
  }),
140
- error.originalError ?? error,
144
+ originalError,
141
145
  expect.anything(),
142
146
  );
143
147
  });
144
148
 
145
- it('minimal internal server error -> valid response', async () => {
149
+ it('minimal graphql error without originalError -> valid response', async () => {
146
150
  // Arrange
147
151
  const now = new Date().toISOString();
148
152
  const error = createGraphQLError('test', {
149
153
  extensions: {
150
154
  timestamp: now,
151
- exception: { code: MosaicErrors.InternalServerError.code },
155
+ exception: { code: MosaicErrors.GraphQLValidationFailed.code },
152
156
  },
153
- originalError: new Error('original'),
154
157
  });
155
158
 
156
159
  // Act
157
160
  const logger = logGraphQlError(defaultWriteLogMapper, testLogger);
158
161
  logger(error);
159
162
 
163
+ // Assert
164
+ const loggedObject = getFirstMockResult<any>(debugOverride);
165
+ toBeIso8601Strict(loggedObject.logtime);
166
+ dateToBeInRange(loggedObject.logtime, timestampBeforeTest);
167
+ expect(loggedObject.error?.stack).toStartWith('Error: test\n');
168
+ expect(loggedObject).toMatchObject({
169
+ loglevel: 'DEBUG',
170
+ message: 'test',
171
+ context: 'GraphQLErrorHandler',
172
+ component: 'navy-asset-service_test',
173
+ details: {
174
+ code: MosaicErrors.GraphQLValidationFailed.code,
175
+ },
176
+ error: {
177
+ name: 'Error',
178
+ message: 'test',
179
+ stack: loggedObject.error?.stack,
180
+ },
181
+ });
182
+ });
183
+
184
+ it('minimal internal server error with originalError -> valid response', async () => {
185
+ // Arrange
186
+ const now = new Date().toISOString();
187
+ const originalError = new Error('original');
188
+ const error = createGraphQLError('test', {
189
+ extensions: {
190
+ timestamp: now,
191
+ exception: { code: MosaicErrors.InternalServerError.code },
192
+ },
193
+ });
194
+
195
+ // Act
196
+ const logger = logGraphQlError(defaultWriteLogMapper, testLogger);
197
+ logger(error, originalError);
198
+
160
199
  // Assert
161
200
  const loggedObject = getFirstMockResult<any>(errorOverride);
162
201
  toBeIso8601Strict(loggedObject.logtime);
@@ -111,10 +111,15 @@ export const logGraphQlError = (
111
111
  writeLogMapper?: WriteLogMapper,
112
112
  logger: Logger = new Logger({ context: 'GraphQLErrorHandler' }),
113
113
  ): {
114
- (error: GraphQLErrorExtended, graphQlOperations?: GraphQlOperation[]): void;
114
+ (
115
+ error: GraphQLErrorExtended,
116
+ originalError?: Error | null,
117
+ graphQlOperations?: GraphQlOperation[],
118
+ ): void;
115
119
  } => {
116
120
  return (
117
121
  error: GraphQLErrorExtended,
122
+ originalError?: Error | null,
118
123
  graphQlOperations?: GraphQlOperation[],
119
124
  ): void => {
120
125
  const {
@@ -135,7 +140,7 @@ export const logGraphQlError = (
135
140
  }),
136
141
  };
137
142
  writeLogMapper
138
- ? writeLogMapper(log, error.originalError ?? error, logger)
139
- : logger.log(error.originalError ?? error, log);
143
+ ? writeLogMapper(log, originalError ?? error, logger)
144
+ : logger.log(originalError ?? error, log);
140
145
  };
141
146
  };