[Groonga-commit] groonga/express-kotoumi [master] Use deeply cloned object to test validation

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index