Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / walkdir / test / filter.js
diff --git a/legacy-libs/walkdir/test/filter.js b/legacy-libs/walkdir/test/filter.js
new file mode 100644 (file)
index 0000000..15557a3
--- /dev/null
@@ -0,0 +1,51 @@
+var test = require('tape');
+var walkdir = require('../walkdir.js');
+var path = require('path');
+
+test("can use filter option returning array",(t)=>{
+  
+    var filterFn = function(dirPath,files){
+        return files.filter((name)=>name != 'nested-symlink')
+    }
+
+    var p = walkdir.async(path.join(__dirname,'dir'),{filter:filterFn})
+  
+    p.then(function(result){
+      result = result.map(function(p){
+        return p.replace(__dirname,'')
+      })
+
+      t.ok(result.join(',').indexOf('nested-symlink') === -1,'should have no mention of nested-symlink if filtered')
+      t.end()
+    }).catch(function(e){
+      t.fail(e);
+    })
+})
+
+test("can use filter option returning promise",(t)=>{
+    if(typeof Promise === 'undefined'){
+      console.log('cannot use async promise returning methods in runtime without Promise')
+      return t.end()
+    }
+  
+    var filterFn = function(dirPath,files){
+        return new Promise(function (resolve,reject){
+            files = files.filter((name)=>name != 'nested-symlink')
+            resolve(files);
+        })
+    }
+
+    var p = walkdir.async(path.join(__dirname,'dir'),{filter:filterFn})
+  
+    p.then(function(result){
+      result = result.map(function(p){
+        return p.replace(__dirname,'')
+      })
+
+      t.ok(result.join(',').indexOf('nested-symlink') === -1,'should have no mention of nested-symlink if filtered')
+      t.end()
+    }).catch(function(e){
+      t.fail(e);
+    })
+})
+  
\ No newline at end of file