html-flavors
Version:
HTML conversion tools
55 lines (44 loc) • 1.47 kB
JavaScript
var test = require('tape');
var flavor = require('..');
var parseHtml = flavor.parseHtml;
var mocks = {
html: '<div class="comp"><span class="foo">whatever</span>some text<b></b></div>'
};
test('should parse html', function (t) {
var tree = parseHtml(mocks.html);
var el = tree.children[0];
t.deepEqual(el.classes, ['comp']);
t.deepEqual(el.children.length, 3);
var expectedList = [
{type: 'element', tag: 'span', classes: ['foo']},
{type: 'text', text: 'some text'},
{type: 'element', tag:'b'}
];
expectedList.forEach(function(expected, i) {
var checked = el.children[i];
for (var prop in expected) {
if (expected.hasOwnProperty(prop)) {
t.deepEqual(checked[prop], expected[prop]);
}
}
});
t.end();
});
var stringifyReactComponent = flavor.stringifyReactComponent;
test('should stringify react component', function (t) {
var tree = {
type: 'element',
tag: 'section',
classes: ['content big'],
children: [
{type: 'text', text: 'kotek'},
{type: 'element', tag: 'span', classes: ['row']}
]
}
var expected = 'function Merged (props) {\n' +
' return (<section className="content big">kotek<span className="row"></span></section>);\n' +
'}';
var result = stringifyReactComponent(tree);
t.equal(result, expected);
t.end();
});