From d3e8e4a2894de52c8ea10231d8ef471334d11134 Mon Sep 17 00:00:00 2001 From: Nikolay Kostyurin Date: Wed, 11 Jul 2018 01:10:43 +0200 Subject: [PATCH] fix(parser): only allowed tags error --- packages/bbob-parser/lib/parse.js | 4 ++-- packages/bbob-parser/test/parse.test.js | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/bbob-parser/lib/parse.js b/packages/bbob-parser/lib/parse.js index a42a545..3bcb8b2 100644 --- a/packages/bbob-parser/lib/parse.js +++ b/packages/bbob-parser/lib/parse.js @@ -1,5 +1,5 @@ const { - convertTokenToText, + convertTagToText, getTagName, getTokenColumn, getTokenLine, @@ -187,7 +187,7 @@ const handleTagToken = (token) => { // [/tag] handleTagEnd(token); } else { - appendNode(convertTokenToText(token)); + appendNode(convertTagToText(token)); } } }; diff --git a/packages/bbob-parser/test/parse.test.js b/packages/bbob-parser/test/parse.test.js index be4ff85..c3fc07a 100644 --- a/packages/bbob-parser/test/parse.test.js +++ b/packages/bbob-parser/test/parse.test.js @@ -20,6 +20,28 @@ describe('Parser', () => { ]); }); + test('parse only allowed tags', () => { + const ast = parse('[h1 name=value]Foo [Bar] [/h1]', { + onlyAllowTags: ['h1'] + }); + + expect(ast).toBeInstanceOf(Array); + expect(ast).toEqual([ + { + tag: 'h1', + attrs: { + name: 'value', + }, + content: [ + 'Foo', + ' ', + '[Bar]', + ' ' + ], + }, + ]); + }); + test('parse tag with value param', () => { const ast = parse('[url=https://github.com/jilizart/bbob]BBob[/url]');