From 29dda8d85dbd3f32d64937325e619f2d70545c2b Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Wed, 26 Apr 2023 09:54:49 +0200 Subject: [PATCH] change(tracker): update tests --- tracker/tracker/src/webworker/QueueSender.ts | 16 +++++++++++++--- .../src/webworker/QueueSender.unit.test.ts | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tracker/tracker/src/webworker/QueueSender.ts b/tracker/tracker/src/webworker/QueueSender.ts index f46040b3e..42489fc07 100644 --- a/tracker/tracker/src/webworker/QueueSender.ts +++ b/tracker/tracker/src/webworker/QueueSender.ts @@ -7,6 +7,7 @@ export default class QueueSender { private readonly queue: Array = [] private readonly ingestURL private token: string | null = null + private isCompressing = false constructor( ingestBaseURL: string, @@ -14,9 +15,10 @@ export default class QueueSender { private readonly onFailure: (reason: string) => any, private readonly MAX_ATTEMPTS_COUNT = 10, private readonly ATTEMPT_TIMEOUT = 1000, - private readonly onCompress: (batch: Uint8Array) => any, + private readonly onCompress?: (batch: Uint8Array) => any, ) { this.ingestURL = ingestBaseURL + INGEST_PATH + if (onCompress !== undefined) this.isCompressing = true } authorise(token: string): void { @@ -32,7 +34,11 @@ export default class QueueSender { this.queue.push(batch) } else { this.busy = true - this.onCompress(batch) + if (this.isCompressing && this.onCompress) { + this.onCompress(batch) + } else { + this.sendBatch(batch) + } } } @@ -40,7 +46,11 @@ export default class QueueSender { const nextBatch = this.queue.shift() if (nextBatch) { this.busy = true - this.onCompress(nextBatch) + if (this.isCompressing && this.onCompress) { + this.onCompress(nextBatch) + } else { + this.sendBatch(nextBatch) + } } else { this.busy = false } diff --git a/tracker/tracker/src/webworker/QueueSender.unit.test.ts b/tracker/tracker/src/webworker/QueueSender.unit.test.ts index fc89a60a4..0f76c29dd 100644 --- a/tracker/tracker/src/webworker/QueueSender.unit.test.ts +++ b/tracker/tracker/src/webworker/QueueSender.unit.test.ts @@ -16,7 +16,7 @@ function defaultQueueSender({ onUnauthorised = () => {}, onFailed = () => {}, } = {}) { - return new QueueSender(baseURL, onUnauthorised, onFailed) + return new QueueSender(baseURL, onUnauthorised, onFailed, 10, 1000) } describe('QueueSender', () => {