diff --git a/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.ts b/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.ts index 26ae25c690..e33d2f4c91 100644 --- a/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.ts +++ b/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.test.ts @@ -133,3 +133,43 @@ describe.each([ }, ); }); + +describe.each([ + [ + 'updateStrategy', + (segmentId: number) => + updateStrategyInCr(randomId(), segmentId, FLAG_NAME), + ], + [ + 'addStrategy', + (segmentId: number) => addStrategyToCr(segmentId, FLAG_NAME), + ], +])( + '%s events should show up in used strategies correctly', + (_, addOrUpdateStrategy) => { + test.each([ + ['Draft', true], + ['In Review', true], + ['Scheduled', true], + ['Approved', true], + ['Rejected', false], + ['Cancelled', false], + ['Applied', false], + ])( + 'Changes in %s CRs should make it %s', + async (state, expectedOutcome) => { + await createCR(state); + + const segmentId = 3; + await addOrUpdateStrategy(segmentId); + + expect(readModel).get; + expect( + await readModel.isSegmentUsedInActiveChangeRequests( + segmentId, + ), + ).toBe(expectedOutcome); + }, + ); + }, +); diff --git a/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.ts b/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.ts index 08ba2f3217..804bcc3fbf 100644 --- a/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.ts +++ b/src/lib/features/change-request-segment-usage-service/change-request-segment-usage-read-model.ts @@ -1,3 +1,4 @@ export interface IChangeRequestSegmentUsageReadModel { isSegmentUsedInActiveChangeRequests(segmentId: number): Promise; + getSegmentsUsedInActiveChangeRequests(): Promise<{}[]>; } diff --git a/src/test/e2e/api/admin/segment.e2e.test.ts b/src/test/e2e/api/admin/segment.e2e.test.ts index 022374d88c..554dafbaed 100644 --- a/src/test/e2e/api/admin/segment.e2e.test.ts +++ b/src/test/e2e/api/admin/segment.e2e.test.ts @@ -523,7 +523,6 @@ describe('detect strategy usage in change requests', () => { }); // for addStrategy, add strategy to feature with segment - // for updateStrategy, add existing strategy, then add segment in CR // check that getStrategies for segments contains the CR strategies const segmentStrategies = await fetchSegmentStrategies(segment.id); @@ -577,7 +576,6 @@ describe('detect strategy usage in change requests', () => { created_by: user.id, }); - // for addStrategy, add strategy to feature with segment // for updateStrategy, add existing strategy, then add segment in CR // check that getStrategies for segments contains the CR strategies