mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
fix: import segment test and fix (#5017)
This commit is contained in:
parent
2adfb7bd15
commit
a7dd0d6c1a
@ -503,10 +503,21 @@ export default class ExportImportService
|
||||
|
||||
private async cleanData(dto: ImportTogglesSchema) {
|
||||
const removedFeaturesDto = await this.removeArchivedFeatures(dto);
|
||||
return ExportImportService.remapSegments(removedFeaturesDto);
|
||||
return this.remapSegments(removedFeaturesDto);
|
||||
}
|
||||
|
||||
private static async remapSegments(dto: ImportTogglesSchema) {
|
||||
private async remapSegments(dto: ImportTogglesSchema) {
|
||||
const existingSegments = await this.segmentService.getAll();
|
||||
|
||||
const segmentMapping = new Map(
|
||||
dto.data.segments?.map((segment) => [
|
||||
segment.id,
|
||||
existingSegments.find(
|
||||
(existingSegment) => existingSegment.name === segment.name,
|
||||
)?.id,
|
||||
]),
|
||||
);
|
||||
|
||||
return {
|
||||
...dto,
|
||||
data: {
|
||||
@ -514,7 +525,9 @@ export default class ExportImportService
|
||||
featureStrategies: dto.data.featureStrategies.map(
|
||||
(strategy) => ({
|
||||
...strategy,
|
||||
segments: [],
|
||||
segments: strategy.segments?.map(
|
||||
(segment) => segmentMapping.get(segment)!,
|
||||
),
|
||||
}),
|
||||
),
|
||||
},
|
||||
|
@ -741,13 +741,44 @@ const validateImport = (importPayload: ImportTogglesSchema, status = 200) =>
|
||||
test('import features to existing project and environment', async () => {
|
||||
await createProjects();
|
||||
|
||||
await app.importToggles(defaultImportPayload);
|
||||
const segment = await createSegment({
|
||||
name: 'newSegment',
|
||||
constraints: [],
|
||||
});
|
||||
|
||||
await app.importToggles({
|
||||
...defaultImportPayload,
|
||||
data: {
|
||||
...defaultImportPayload.data,
|
||||
featureStrategies: [
|
||||
{
|
||||
...exportedStrategy,
|
||||
segments: [segment.id],
|
||||
},
|
||||
],
|
||||
segments: [
|
||||
{
|
||||
id: segment.id,
|
||||
name: segment.name,
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
const { body: importedFeature } = await getFeature(defaultFeatureName);
|
||||
expect(importedFeature).toMatchObject({
|
||||
name: defaultFeatureName,
|
||||
project: DEFAULT_PROJECT,
|
||||
variants,
|
||||
environments: [
|
||||
{
|
||||
strategies: [
|
||||
{
|
||||
segments: [segment.id],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const { body: importedFeatureEnvironment } = await getFeatureEnvironment(
|
||||
|
Loading…
Reference in New Issue
Block a user