mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
const test = require('ava');
 | 
						|
const mapper = require('./legacy-feature-mapper');
 | 
						|
 | 
						|
test('adds old fields to feature', t => {
 | 
						|
    const feature = {
 | 
						|
        name: 'test',
 | 
						|
        enabled: 0,
 | 
						|
        strategies: [{
 | 
						|
            name: 'default',
 | 
						|
            parameters: {
 | 
						|
                val: 'bar',
 | 
						|
            },
 | 
						|
        }],
 | 
						|
    };
 | 
						|
 | 
						|
    const mappedFeature = mapper.addOldFields(feature);
 | 
						|
 | 
						|
    t.true(mappedFeature.name === feature.name);
 | 
						|
    t.true(mappedFeature.enabled === feature.enabled);
 | 
						|
    t.true(mappedFeature.strategy === feature.strategies[0].name);
 | 
						|
    t.true(mappedFeature.parameters !== feature.strategies[0].parameters);
 | 
						|
    t.deepEqual(mappedFeature.parameters, feature.strategies[0].parameters);
 | 
						|
});
 | 
						|
 | 
						|
test('adds old fields to feature handles missing strategies field', t => {
 | 
						|
    const feature = {
 | 
						|
        name: 'test',
 | 
						|
        enabled: 0
 | 
						|
    };
 | 
						|
 | 
						|
    const mappedFeature = mapper.addOldFields(feature);
 | 
						|
 | 
						|
    t.true(mappedFeature.name === feature.name);
 | 
						|
    t.true(mappedFeature.enabled === feature.enabled);
 | 
						|
    t.true(mappedFeature.strategies.length === 0);
 | 
						|
});
 | 
						|
 | 
						|
test('transforms fields to new format', t => {
 | 
						|
    const feature = {
 | 
						|
        name: 'test',
 | 
						|
        enabled: 0,
 | 
						|
        strategy: 'default',
 | 
						|
        parameters: {
 | 
						|
            val: 'bar',
 | 
						|
        },
 | 
						|
    };
 | 
						|
 | 
						|
    const mappedFeature = mapper.toNewFormat(feature);
 | 
						|
 | 
						|
    t.true(mappedFeature.name === feature.name);
 | 
						|
    t.true(mappedFeature.enabled === feature.enabled);
 | 
						|
    t.true(mappedFeature.strategies.length === 1);
 | 
						|
    t.true(mappedFeature.strategies[0].name === feature.strategy);
 | 
						|
    t.deepEqual(mappedFeature.strategies[0].parameters, feature.parameters);
 | 
						|
    t.true(mappedFeature.strategy === undefined);
 | 
						|
    t.true(mappedFeature.parameters === undefined);
 | 
						|
});
 | 
						|
 | 
						|
test('should not transform if it already is the new format', t => {
 | 
						|
    const feature = {
 | 
						|
        name: 'test',
 | 
						|
        enabled: 0,
 | 
						|
        description: 'test',
 | 
						|
        createdAt: new Date(),
 | 
						|
        strategies: [{
 | 
						|
            name: 'default',
 | 
						|
            parameters: {
 | 
						|
                val: 'bar',
 | 
						|
            },
 | 
						|
        }],
 | 
						|
    };
 | 
						|
 | 
						|
    const mappedFeature = mapper.toNewFormat(feature);
 | 
						|
 | 
						|
    t.deepEqual(mappedFeature, feature);
 | 
						|
});
 |