const rootScopes = resolver._rootScopes;
const fallback = resolveFallback(resolver._fallback, prop, value);
const allScopes = [...parentScopes, ...rootScopes];
- const set = new Set([value]);
+ const set = new Set();
+ if (!(prop in parentScopes[0])) {
+ // create an empty scope for possible stored values, so we always set the values in top scope.
+ set.add(parentScopes[0][prop] = {});
+ }
+ set.add(value);
let key = addScopesFromKey(set, allScopes, prop, fallback || prop);
if (key === null) {
return false;
'numbers',
]);
});
+ });
+ describe('setting values', function() {
+ it('should set values to first scope', function() {
+ const defaults = {
+ value: true
+ };
+ const options = {};
+ const resolver = _createResolver([options, defaults]);
+ resolver.value = false;
+ expect(options.value).toBeFalse();
+ expect(defaults.value).toBeTrue();
+ });
+ it('should set values of sub-objects to first scope', function() {
+ const defaults = {
+ sub: {
+ value: true
+ }
+ };
+ const options = {};
+ const resolver = _createResolver([options, defaults]);
+ resolver.sub.value = false;
+ expect(options.sub.value).toBeFalse();
+ expect(defaults.sub.value).toBeTrue();
+ });
});
});