From 91bb1f2d0cba94f99db1014c7553191771864319 Mon Sep 17 00:00:00 2001 From: Michael Hadley Date: Fri, 14 Apr 2017 09:12:53 -0700 Subject: [PATCH] Adds valueFn as a Config method (#226) --- packages/metal-state/src/Config.js | 11 +++++++++++ packages/metal-state/test/Config.js | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/metal-state/src/Config.js b/packages/metal-state/src/Config.js index d4f86e7a..a86bd970 100644 --- a/packages/metal-state/src/Config.js +++ b/packages/metal-state/src/Config.js @@ -80,6 +80,17 @@ const Config = { return mergeConfig(this, { value }); + }, + + /** + * Adds a valueFn that will return a default value for the `State` configuration. + * @param {!function()} valueFn + * @return {!Object} `State` configuration object. + */ + valueFn(valueFn) { + return mergeConfig(this, { + valueFn + }); } }; diff --git a/packages/metal-state/test/Config.js b/packages/metal-state/test/Config.js index 2267b5d8..70f042d5 100644 --- a/packages/metal-state/test/Config.js +++ b/packages/metal-state/test/Config.js @@ -51,6 +51,15 @@ describe('Config', function() { }, config.config); }); + it('should return config with specified "valueFn"', function() { + var valueFn = () => {}; + var config = Config.valueFn(valueFn); + assert.ok(core.isObject(config)); + assert.deepEqual({ + valueFn + }, config.config); + }); + it('should return config with specified "setter"', function() { var setter = () => { };