diff --git a/src/scripts/lib/clay-config.js b/src/scripts/lib/clay-config.js index b2ab0e0..285a064 100644 --- a/src/scripts/lib/clay-config.js +++ b/src/scripts/lib/clay-config.js @@ -184,6 +184,9 @@ function ClayConfig(settings, config, $rootContainer, meta) { */ self.serialize = function() { _checkBuilt('serialize'); + + _settings = {}; + _.eachObj(_itemsByAppKey, function(appKey, item) { _settings[appKey] = { value: item.get() diff --git a/test/spec/lib/clay-config.js b/test/spec/lib/clay-config.js index 80d57a9..a977935 100644 --- a/test/spec/lib/clay-config.js +++ b/test/spec/lib/clay-config.js @@ -159,6 +159,26 @@ describe('ClayConfig', function() { fixtures.clayConfig(config, true, true, loadedSettings); }); }); + + it('only returns the settings present in the config', function() { + var config = [ + {type: 'input', appKey: 'test1', defaultValue: 'default val'}, + {type: 'select', appKey: 'test2', options: [ + {label: 'label-1', value: 'val-1'}, + {label: 'label-2', value: 'val-2'} + ]} + ]; + var settings = { + test2: 'val-2', + notInTheConfig: 'Should not exist' + }; + + var clayConfig = fixtures.clayConfig(config, true, true, settings); + assert.deepEqual(clayConfig.serialize(), { + test1: {value: 'default val'}, + test2: {value: 'val-2'} + }); + }); }); describe('.registerComponent()', function() {