var wildcard = require('../'), test = require('tape'), testdata = { 'a.b.c' : {}, 'a.b' : {}, 'a' : {}, 'a.b.d' : {} }, testdataSep = { 'a:b:c' : {}, 'a:b' : {}, 'a' : {}, 'a:b:d' : {} }; test('object result matching tests', function(t) { t.test('should return 4 matches for a.*', function(t) { var matches = wildcard('a.*', testdata); t.plan(4); t.ok(matches['a.b.c']); t.ok(matches['a.b']); t.ok(matches['a']); t.ok(matches['a.b.d']); t.end(); }); t.test('should return 4 matches for a:*', function(t) { var matches = wildcard('a:*', testdataSep, ':'); t.plan(4); t.ok(matches['a:b:c']); t.ok(matches['a:b']); t.ok(matches['a']); t.ok(matches['a:b:d']); t.end(); }); t.test('should return 3 matches for a.b.*', function(t) { var matches = wildcard('a.b.*', testdata); t.plan(4); t.ok(matches['a.b.c']); t.ok(matches['a.b']); t.notOk(matches['a']); t.ok(matches['a.b.d']); t.end(); }); t.test('should return 3 matches for a:b:*', function(t) { var matches = wildcard('a:b:*', testdataSep, ':'); t.plan(4); t.ok(matches['a:b:c']); t.ok(matches['a:b']); t.notOk(matches['a']); t.ok(matches['a:b:d']); t.end(); }); t.test('should return 1 matches for a.*.c', function(t) { var matches = wildcard('a.*.c', testdata); t.plan(4); t.ok(matches['a.b.c']); t.notOk(matches['a.b']); t.notOk(matches['a']); t.notOk(matches['a.b.d']); t.end(); }); t.test('should return 1 matches for a:*:c', function(t) { var matches = wildcard('a:*:c', testdataSep, ':'); t.plan(4); t.ok(matches['a:b:c']); t.notOk(matches['a:b']); t.notOk(matches['a']); t.notOk(matches['a:b:d']); t.end(); }); t.test('should return 0 matches for b.*.d', function(t) { var matches = wildcard('b.*.d', testdata); t.plan(4); t.notOk(matches['a.b.c']); t.notOk(matches['a.b']); t.notOk(matches['a']); t.notOk(matches['a.b.d']); t.end(); }); t.test('should return 0 matches for b:*:d', function(t) { var matches = wildcard('b:*:d', testdataSep, ':'); t.plan(4); t.notOk(matches['a:b:c']); t.notOk(matches['a:b']); t.notOk(matches['a']); t.notOk(matches['a:b:d']); t.end(); }); t.end(); });