mirror of
https://github.com/Unleash/unleash.git
synced 2025-11-24 20:06:55 +01:00
fix: prevent duplicate lifecycle timing (#11017)
This commit is contained in:
parent
e455426b3c
commit
bbad97a9e4
@ -58,14 +58,15 @@ export class FeatureLifecycleStore implements IFeatureLifecycleStore {
|
|||||||
stopTimer();
|
stopTimer();
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
const baseTime = new Date();
|
||||||
const result = await this.db('feature_lifecycles')
|
const result = await this.db('feature_lifecycles')
|
||||||
.insert(
|
.insert(
|
||||||
validStages.map((stage) => ({
|
validStages.map((stage, index) => ({
|
||||||
feature: stage.feature,
|
feature: stage.feature,
|
||||||
stage: stage.stage,
|
stage: stage.stage,
|
||||||
status: stage.status,
|
status: stage.status,
|
||||||
status_value: stage.statusValue,
|
status_value: stage.statusValue,
|
||||||
created_at: new Date(),
|
created_at: new Date(baseTime.getTime() + index), // prevent identical times for stages in bulk update
|
||||||
})),
|
})),
|
||||||
)
|
)
|
||||||
.returning('*')
|
.returning('*')
|
||||||
|
|||||||
@ -38,7 +38,9 @@ beforeAll(async () => {
|
|||||||
db.stores,
|
db.stores,
|
||||||
{
|
{
|
||||||
experimental: {
|
experimental: {
|
||||||
flags: {},
|
flags: {
|
||||||
|
optimizeLifecycle: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
db.rawDatabase,
|
db.rawDatabase,
|
||||||
@ -178,6 +180,9 @@ test('should return lifecycle stages', async () => {
|
|||||||
enteredStageAt: expect.any(String),
|
enteredStageAt: expect.any(String),
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
expect(new Date(body[2].enteredStageAt).getTime()).toBeGreaterThan(
|
||||||
|
new Date(body[1].enteredStageAt).getTime(),
|
||||||
|
);
|
||||||
await expectFeatureStage('my_feature_a', 'archived');
|
await expectFeatureStage('my_feature_a', 'archived');
|
||||||
|
|
||||||
eventStore.emit(FEATURE_REVIVED, { featureName: 'my_feature_a' });
|
eventStore.emit(FEATURE_REVIVED, { featureName: 'my_feature_a' });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user