|
1 | 1 | import { DEFAULT_BLACK_LIST } from "../src/default-black-list";
|
2 | 2 | import { LoggerFilter } from "../src/logger-filter";
|
3 | 3 | import faker from "faker";
|
| 4 | +import { parse } from "lossless-json"; |
4 | 5 |
|
5 | 6 | const DEFAULT_PLACE_HOLDER = "*sensitive*";
|
6 | 7 |
|
@@ -155,6 +156,25 @@ describe("LoggerFilter", () => {
|
155 | 156 | expect(parsed).toStrictEqual(expectedResult);
|
156 | 157 | });
|
157 | 158 |
|
| 159 | + it("Should return the original data when losslessNumber is converted to pure object", () => { |
| 160 | + // Given |
| 161 | + const key = faker.random.word(); |
| 162 | + const value = faker.datatype.number().toString(); |
| 163 | + const losslessNumberInstance = parse(value); |
| 164 | + const losslessNumberPureObject = JSON.parse( |
| 165 | + JSON.stringify(losslessNumberInstance) |
| 166 | + ); |
| 167 | + const item = { [key]: losslessNumberPureObject }; |
| 168 | + const expectedResult = { [key]: value }; |
| 169 | + const filter = new LoggerFilter(); |
| 170 | + |
| 171 | + // When |
| 172 | + const parsed = filter.process(item); |
| 173 | + |
| 174 | + // Then |
| 175 | + expect(parsed).toStrictEqual(expectedResult); |
| 176 | + }); |
| 177 | + |
158 | 178 | it("Should replace into a nested object inside an array", () => {
|
159 | 179 | // Given
|
160 | 180 | const key = faker.random.word();
|
@@ -238,19 +258,29 @@ describe("LoggerFilter", () => {
|
238 | 258 | expect(parsed.error.name).toBe(expectedResult.error.name);
|
239 | 259 | });
|
240 | 260 |
|
241 |
| - it("Should serialize an axios error removing not need attributes", () => { |
| 261 | + it("Should serialize an axios error removing useless attributes and replacing sensitive content", () => { |
242 | 262 | // Given
|
243 | 263 | // eslint-disable-next-line @typescript-eslint/no-var-requires
|
244 | 264 | const error = require("./fixtures/axios-error.json");
|
245 | 265 | error.__proto__ = Error.prototype;
|
246 | 266 | const item = { error };
|
247 | 267 | const expectedError = {
|
248 | 268 | error: {
|
249 |
| - config: error.config, |
| 269 | + config: { |
| 270 | + ...error.config, |
| 271 | + data: {}, |
| 272 | + maxContentLength: error.config.maxContentLength.toString(), |
| 273 | + timeout: error.config.timeout.toString(), |
| 274 | + headers: { |
| 275 | + ...error.config.headers, |
| 276 | + "x-api-key": DEFAULT_PLACE_HOLDER, |
| 277 | + countryId: error.config.headers.countryId.toString(), |
| 278 | + }, |
| 279 | + }, |
250 | 280 | message: error.message,
|
251 | 281 | name: error.name,
|
252 | 282 | response: {
|
253 |
| - status: error.response.status, |
| 283 | + status: error.response.status.toString(), |
254 | 284 | statusText: error.response.statusText,
|
255 | 285 | headers: error.response.headers,
|
256 | 286 | data: error.response.data,
|
|
0 commit comments