var test = require('tape'); var balanced = require('..'); test('balanced', function(t) { t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), { start: 3, end: 12, pre: 'pre', body: 'in{nest}', post: 'post' }); t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), { start: 8, end: 11, pre: '{{{{{{{{', body: 'in', post: 'post' }); t.deepEqual(balanced('{', '}', 'pre{body{in}post'), { start: 8, end: 11, pre: 'pre{body', body: 'in', post: 'post' }); t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), { start: 4, end: 13, pre: 'pre}', body: 'in{nest}', post: 'post' }); t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), { start: 3, end: 8, pre: 'pre', body: 'body', post: 'between{body2}post' }); t.notOk(balanced('{', '}', 'nope'), 'should be notOk'); t.deepEqual(balanced('', '', 'preinnestpost'), { start: 3, end: 19, pre: 'pre', body: 'innest', post: 'post' }); t.deepEqual(balanced('', '', 'preinnestpost'), { start: 7, end: 23, pre: 'pre', body: 'innest', post: 'post' }); t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), { start: 3, end: 9, pre: 'pre', body: '{in}', post: 'post' }); t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), { start: 3, end: 8, pre: 'pre', body: 'in', post: '}post' }); t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), { start: 4, end: 10, pre: 'pre{', body: 'first', post: 'in{second}post' }); t.deepEqual(balanced('', 'prepost'), { start: 3, end: 4, pre: 'pre', body: '', post: 'post' }); t.end(); });