mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-27 13:49:10 +02:00
feat: more tests
This commit is contained in:
parent
706019cd9e
commit
a549f9a017
@ -134,19 +134,7 @@ describe.each([
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe.each([
|
describe('addStrategy events should show up in used strategies correctly', () => {
|
||||||
[
|
|
||||||
'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([
|
test.each([
|
||||||
['Draft', true],
|
['Draft', true],
|
||||||
['In Review', true],
|
['In Review', true],
|
||||||
@ -156,20 +144,68 @@ describe.each([
|
|||||||
['Cancelled', false],
|
['Cancelled', false],
|
||||||
['Applied', false],
|
['Applied', false],
|
||||||
])(
|
])(
|
||||||
'Changes in %s CRs should make it %s',
|
'addStrategy events in %s CRs should show up',
|
||||||
async (state, expectedOutcome) => {
|
async (state, shouldShow) => {
|
||||||
await createCR(state);
|
await createCR(state);
|
||||||
|
|
||||||
const segmentId = 3;
|
const segmentId = 3;
|
||||||
await addOrUpdateStrategy(segmentId);
|
|
||||||
|
|
||||||
expect(readModel).get;
|
await addStrategyToCr(segmentId, FLAG_NAME);
|
||||||
expect(
|
|
||||||
await readModel.isSegmentUsedInActiveChangeRequests(
|
const result = await readModel.isSegmentUsedInActiveChangeRequests(
|
||||||
segmentId,
|
segmentId,
|
||||||
),
|
);
|
||||||
).toBe(expectedOutcome);
|
if (shouldShow) {
|
||||||
|
expect(result).toBe({
|
||||||
|
projectId: 'default',
|
||||||
|
strategyName: 'flexibleRollout',
|
||||||
|
environment: 'default',
|
||||||
|
featureName: FLAG_NAME,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
expect(result).toBe([]);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('updateStrategy events should show up in used strategies correctly', () => {
|
||||||
|
test.each([
|
||||||
|
['Draft', true],
|
||||||
|
['In Review', true],
|
||||||
|
['Scheduled', true],
|
||||||
|
['Approved', true],
|
||||||
|
['Rejected', false],
|
||||||
|
['Cancelled', false],
|
||||||
|
['Applied', false],
|
||||||
|
])(
|
||||||
|
'updateStrategy events in %s CRs should show up',
|
||||||
|
async (state, shouldShow) => {
|
||||||
|
await createCR(state);
|
||||||
|
|
||||||
|
const segmentId = 3;
|
||||||
|
|
||||||
|
const strategyId = randomId();
|
||||||
|
await updateStrategyInCr(strategyId, segmentId, FLAG_NAME);
|
||||||
|
|
||||||
|
const result =
|
||||||
|
await readModel.getStrategiesUsedInActiveChangeRequests(
|
||||||
|
segmentId,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (shouldShow) {
|
||||||
|
expect(result).toMatchObject([
|
||||||
|
{
|
||||||
|
id: strategyId,
|
||||||
|
projectId: 'default',
|
||||||
|
strategyName: 'flexibleRollout',
|
||||||
|
environment: 'default',
|
||||||
|
featureName: FLAG_NAME,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
expect(result).toBe([]);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
@ -11,5 +11,7 @@ type ChangeRequestStrategy = NewStrategy | ExistingStrategy;
|
|||||||
|
|
||||||
export interface IChangeRequestSegmentUsageReadModel {
|
export interface IChangeRequestSegmentUsageReadModel {
|
||||||
isSegmentUsedInActiveChangeRequests(segmentId: number): Promise<boolean>;
|
isSegmentUsedInActiveChangeRequests(segmentId: number): Promise<boolean>;
|
||||||
getSegmentsUsedInActiveChangeRequests(): Promise<ChangeRequestStrategy[]>;
|
getStrategiesUsedInActiveChangeRequests(
|
||||||
|
segmentId: number,
|
||||||
|
): Promise<ChangeRequestStrategy[]>;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user