path-test.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var run = require('./run');
  2. var path = require('path');
  3. /* jshint quotmark:false */
  4. var file1 = path.join(__dirname, 'assets', 'propName.json');
  5. var expected1 = ['foo', 'bar'];
  6. var file2 = path.join(__dirname, 'assets', 'arrayKey.json');
  7. var expected2 = [83, 5, 64, 'grandma'];
  8. var file3 = path.join(__dirname, 'assets', 'regexp.json');
  9. var expected3 = [500, 2000, true];
  10. var file4 = path.join(__dirname, 'assets', 'function.json');
  11. var expected4 = [
  12. "200",
  13. [42, { "more": "results" }, 23],
  14. "long",
  15. "200",
  16. [42, { "more": "results" }, 23],
  17. "long"
  18. ];
  19. var file5 = path.join(__dirname, 'assets', 'many.json');
  20. var expected5 = [
  21. { "_id": "change1_0.6995461115147918",
  22. "_rev": "1-e240bae28c7bb3667f02760f6398d508",
  23. "hello": 1 },
  24. { "_id":"change2_0.6995461115147918",
  25. "_rev":"1-13677d36b98c0c075145bb8975105153",
  26. "hello": 2 }
  27. ];
  28. describe('Parse JSON with a path that contains', function() {
  29. run('a property name', file1, expected1, ['name']);
  30. run('a boolean and array key', file2, expected2, [true, true, 2]);
  31. run('a RegExp', file3, expected3, [/^_/]);
  32. run('a function', file4, expected4, [function(key) {
  33. return key.length > 5;
  34. }]);
  35. run('many of the above', file5, expected5, ['rows', true, 'doc']);
  36. });