From f94be1d57c1e0be4a17ca5492cb2845e05dda5db Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Fri, 20 Dec 2024 12:18:40 +0100 Subject: [PATCH] fix: remove etag from streaming parsing (#689) --- src/repository/index.ts | 8 +------- src/test/repository.test.ts | 15 +++++---------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/src/repository/index.ts b/src/repository/index.ts index 81e970f8..97571ad6 100644 --- a/src/repository/index.ts +++ b/src/repository/index.ts @@ -150,13 +150,7 @@ export default class Repository extends EventEmitter implements EventEmitter { private handleFlagsFromStream(event: { data: string }) { try { - const data: ClientFeaturesResponse & { meta: { etag: string } } = JSON.parse(event.data); - const etag = data.meta.etag; - if (etag !== null) { - this.etag = etag; - } else { - this.etag = undefined; - } + const data: ClientFeaturesResponse = JSON.parse(event.data); this.save(data, true); } catch (err) { this.emit(UnleashEvents.Error, err); diff --git a/src/test/repository.test.ts b/src/test/repository.test.ts index 1ce208b7..00a15623 100644 --- a/src/test/repository.test.ts +++ b/src/test/repository.test.ts @@ -1363,7 +1363,7 @@ test('Stopping repository should stop storage provider updates', async (t) => { }); test('Streaming', async (t) => { - t.plan(7); + t.plan(5); const url = 'http://unleash-test-streaming.app'; const feature = { name: 'feature', @@ -1408,7 +1408,7 @@ test('Streaming', async (t) => { // first connection is ignored, since we do regular fetch eventSource.emit('unleash-connected', { type: 'unleash-connected', - data: JSON.stringify({ meta: {}, features: [{ ...feature, name: 'intialConnectedIgnored' }] }), + data: JSON.stringify({ features: [{ ...feature, name: 'intialConnectedIgnored' }] }), }); const before = repo.getToggles(); @@ -1417,22 +1417,17 @@ test('Streaming', async (t) => { // update with feature eventSource.emit('unleash-updated', { type: 'unleash-updated', - data: JSON.stringify({ meta: {}, features: [{ ...feature, name: 'firstUpdate' }] }), + data: JSON.stringify({ features: [{ ...feature, name: 'firstUpdate' }] }), }); const firstUpdate = repo.getToggles(); t.deepEqual(firstUpdate, [{ ...feature, name: 'firstUpdate' }]); - // @ts-expect-error - t.is(repo.etag, undefined); - // update with etag eventSource.emit('unleash-updated', { type: 'unleash-updated', - data: JSON.stringify({ meta: { etag: 'updated' }, features: [] }), + data: JSON.stringify({ features: [] }), }); const secondUpdate = repo.getToggles(); t.deepEqual(secondUpdate, []); - // @ts-expect-error - t.is(repo.etag, 'updated'); // SSE error translated to repo warning repo.on('warn', (msg) => { @@ -1443,7 +1438,7 @@ test('Streaming', async (t) => { // re-connect simulation eventSource.emit('unleash-connected', { type: 'unleash-connected', - data: JSON.stringify({ meta: {}, features: [{ ...feature, name: 'reconnectUpdate' }] }), + data: JSON.stringify({ features: [{ ...feature, name: 'reconnectUpdate' }] }), }); const reconnectUpdate = repo.getToggles(); t.deepEqual(reconnectUpdate, [{ ...feature, name: 'reconnectUpdate' }]);