From 80844ba373c00d6d2a84609152f4fc1c1edf8aad Mon Sep 17 00:00:00 2001 From: guss84 Date: Fri, 7 Feb 2025 14:31:20 +0100 Subject: [PATCH] fix issue where the payload is formatted incorrectly on a retried request remove stringify from test --- src/layer/__tests__/retries.ts | 15 +++++++++++++++ src/utils/axiosInterceptors.ts | 1 + 2 files changed, 16 insertions(+) diff --git a/src/layer/__tests__/retries.ts b/src/layer/__tests__/retries.ts index 4acb722f..28381fdb 100644 --- a/src/layer/__tests__/retries.ts +++ b/src/layer/__tests__/retries.ts @@ -172,3 +172,18 @@ test( }, 10 * 3000 + 1000, ); + +test( + 'Compare payload is the same on retry', + async () => { + const { fromTime, toTime, bbox, layer } = constructFixtureFindTiles({}); + mockNetwork.reset(); + mockNetwork.onPost().replyOnce(500); + mockNetwork.onPost().replyOnce(500); + + await expect(layer.findTiles(bbox, fromTime, toTime, null, null, { retries: 1 })).rejects.toThrow(); + expect(mockNetwork.history.post.length).toBe(2); + expect(mockNetwork.history.post[1].data).toBe(mockNetwork.history.post[0].data); + }, + 2 * 3000 + 1000, +); diff --git a/src/utils/axiosInterceptors.ts b/src/utils/axiosInterceptors.ts index 7c452299..7fa7f311 100644 --- a/src/utils/axiosInterceptors.ts +++ b/src/utils/axiosInterceptors.ts @@ -123,6 +123,7 @@ const retryRequests = (err: any): any => { const shouldRetry = err.config.retriesCount < maxRetries; if (shouldRetry) { err.config.retriesCount += 1; + err.config.transformRequest = [(data: any) => data]; return new Promise((resolve) => setTimeout(() => resolve(axios(err.config)), DEFAULT_RETRY_DELAY)); } }