balanced.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. var test = require('tape');
  2. var balanced = require('..');
  3. test('balanced', function(t) {
  4. t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), {
  5. start: 3,
  6. end: 12,
  7. pre: 'pre',
  8. body: 'in{nest}',
  9. post: 'post'
  10. });
  11. t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), {
  12. start: 8,
  13. end: 11,
  14. pre: '{{{{{{{{',
  15. body: 'in',
  16. post: 'post'
  17. });
  18. t.deepEqual(balanced('{', '}', 'pre{body{in}post'), {
  19. start: 8,
  20. end: 11,
  21. pre: 'pre{body',
  22. body: 'in',
  23. post: 'post'
  24. });
  25. t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), {
  26. start: 4,
  27. end: 13,
  28. pre: 'pre}',
  29. body: 'in{nest}',
  30. post: 'post'
  31. });
  32. t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), {
  33. start: 3,
  34. end: 8,
  35. pre: 'pre',
  36. body: 'body',
  37. post: 'between{body2}post'
  38. });
  39. t.notOk(balanced('{', '}', 'nope'), 'should be notOk');
  40. t.deepEqual(balanced('<b>', '</b>', 'pre<b>in<b>nest</b></b>post'), {
  41. start: 3,
  42. end: 19,
  43. pre: 'pre',
  44. body: 'in<b>nest</b>',
  45. post: 'post'
  46. });
  47. t.deepEqual(balanced('<b>', '</b>', 'pre</b><b>in<b>nest</b></b>post'), {
  48. start: 7,
  49. end: 23,
  50. pre: 'pre</b>',
  51. body: 'in<b>nest</b>',
  52. post: 'post'
  53. });
  54. t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), {
  55. start: 3,
  56. end: 9,
  57. pre: 'pre',
  58. body: '{in}',
  59. post: 'post'
  60. });
  61. t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), {
  62. start: 3,
  63. end: 8,
  64. pre: 'pre',
  65. body: 'in',
  66. post: '}post'
  67. });
  68. t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), {
  69. start: 4,
  70. end: 10,
  71. pre: 'pre{',
  72. body: 'first',
  73. post: 'in{second}post'
  74. });
  75. t.deepEqual(balanced('<?', '?>', 'pre<?>post'), {
  76. start: 3,
  77. end: 4,
  78. pre: 'pre',
  79. body: '',
  80. post: 'post'
  81. });
  82. t.end();
  83. });