mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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