From ca562c548d9aa86f7d8fb50a4b7d536a560bd1d5 Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Wed, 19 Feb 2025 09:37:10 +0200 Subject: [PATCH] feat: project field to feature removed event (#9322) Start sending out project for feature deleted, as we need it for edge to keep exact copy. --- .../delta/client-feature-toggle-delta.ts | 12 ++---------- .../client-feature-toggles/delta/delta-cache.test.ts | 8 ++++---- .../spec/client-features-delta-schema.test.ts | 1 + src/lib/openapi/spec/client-features-delta-schema.ts | 3 ++- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.ts b/src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.ts index a291e7dfc5..4b743f30e5 100644 --- a/src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.ts +++ b/src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.ts @@ -205,17 +205,9 @@ export class ClientFeatureToggleDelta extends EventEmitter { return undefined; } - const response: ClientFeaturesDeltaSchema = { - events: events.map((event) => { - if (event.type === 'feature-removed') { - const { project, ...rest } = event; - return rest; - } - return event; - }), + return { + events, }; - - return Promise.resolve(response); } } diff --git a/src/lib/features/client-feature-toggles/delta/delta-cache.test.ts b/src/lib/features/client-feature-toggles/delta/delta-cache.test.ts index e39ba087b7..4e7018682d 100644 --- a/src/lib/features/client-feature-toggles/delta/delta-cache.test.ts +++ b/src/lib/features/client-feature-toggles/delta/delta-cache.test.ts @@ -131,13 +131,13 @@ describe('RevisionCache', () => { }, { eventId: 4, - type: 'feature-removed', + type: DELTA_EVENT_TYPES.FEATURE_REMOVED, featureName: 'test-flag', project: 'default', }, { eventId: 5, - type: 'segment-updated', + type: DELTA_EVENT_TYPES.SEGMENT_UPDATED, segment: { id: 1, name: 'update-segment-new', @@ -146,12 +146,12 @@ describe('RevisionCache', () => { }, { eventId: 6, - type: 'segment-removed', + type: DELTA_EVENT_TYPES.SEGMENT_REMOVED, segmentId: 2, }, { eventId: 7, - type: 'segment-updated', + type: DELTA_EVENT_TYPES.SEGMENT_UPDATED, segment: { id: 3, name: 'new-segment', diff --git a/src/lib/openapi/spec/client-features-delta-schema.test.ts b/src/lib/openapi/spec/client-features-delta-schema.test.ts index 3a985a208b..c1cc4c55c4 100644 --- a/src/lib/openapi/spec/client-features-delta-schema.test.ts +++ b/src/lib/openapi/spec/client-features-delta-schema.test.ts @@ -8,6 +8,7 @@ test('clientFeaturesDeltaSchema all fields', () => { eventId: 1, type: 'feature-removed', featureName: 'removed-event', + project: 'default', }, { eventId: 1, diff --git a/src/lib/openapi/spec/client-features-delta-schema.ts b/src/lib/openapi/spec/client-features-delta-schema.ts index 6069f8e224..8d739018e9 100644 --- a/src/lib/openapi/spec/client-features-delta-schema.ts +++ b/src/lib/openapi/spec/client-features-delta-schema.ts @@ -35,11 +35,12 @@ export const clientFeaturesDeltaSchema = { }, { type: 'object', - required: ['eventId', 'type', 'featureName'], + required: ['eventId', 'type', 'featureName', 'project'], properties: { eventId: { type: 'number' }, type: { type: 'string', enum: ['feature-removed'] }, featureName: { type: 'string' }, + project: { type: 'string' }, }, }, {