YUKI Hiroshi
null+****@clear*****
Thu Jan 17 15:57:36 JST 2013
YUKI Hiroshi 2013-01-17 15:57:36 +0900 (Thu, 17 Jan 2013) New Revision: fda3100e2933ed16cc7e8863e2176c56ab968505 https://github.com/groonga/express-kotoumi/commit/fda3100e2933ed16cc7e8863e2176c56ab968505 Log: Use deeply cloned object to test validation Modified files: test/builders-rest-request.test.js Modified: test/builders-rest-request.test.js (+13 -5) =================================================================== --- test/builders-rest-request.test.js 2013-01-17 15:46:12 +0900 (e1854dc) +++ test/builders-rest-request.test.js 2013-01-17 15:57:36 +0900 (863cb9c) @@ -69,16 +69,24 @@ suite('building message from REST API request', function() { }); suite('validation', function() { + function deepClone(base) { + if (!base || typeof base != 'object') + return base; + + var cloned = Object.create(null); + Object.keys(base).forEach(function(key) { + cloned[key] = deepClone(base[key]); + }); + return cloned; + } + function merge(base, extra) { if (!extra || typeof extra != 'object') return base || extra; - var merged = Object.create(null); - Object.keys(base).forEach(function(key) { - merged[key] = merge(base[key], null); - }); + var merged = deepClone(base); Object.keys(extra).forEach(function(key) { - merged[key] = merge(base[key] || null, extra[key]); + merged[key] = merge(merged[key], extra[key]); }); return merged; } -------------- next part -------------- HTML����������������������������... Download