more tests
This commit is contained in:
parent
64071ce507
commit
5d41421e81
|
@ -53,7 +53,7 @@ function convertText(txt) {
|
|||
var start = txt.indexOf('{');
|
||||
var pre = txt.substr(0,start);
|
||||
if (pre) {
|
||||
res += (first?"":"+") + JSON.stringify(pre);
|
||||
res += (first ? "" : "+") + JSON.stringify(pre);
|
||||
first = false;
|
||||
}
|
||||
var curlyCounter = 1;
|
||||
|
@ -175,9 +175,8 @@ function convertHtmlToReact(node, context) {
|
|||
} else if (node.type === "text") {
|
||||
if (node.data.trim()) {
|
||||
return convertText(node.data.trim());
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
<!doctype jsx>
|
||||
<div>
|
||||
</div>
|
|
@ -0,0 +1,6 @@
|
|||
define([
|
||||
'react',
|
||||
'lodash'
|
||||
], function (React, _) {
|
||||
return React.DOM.div.apply(this, _.flatten([{}].concat([])));
|
||||
});
|
|
@ -1,4 +1,31 @@
|
|||
<!doctype jsx>
|
||||
<div>
|
||||
<div className="nav">
|
||||
<div jsx-repeat="category in this.props.model.nav">
|
||||
<div className="category-title">{category.name}</div>
|
||||
|
||||
<div className="category-entries">
|
||||
<div jsx-if="category.items.length > 0">
|
||||
<div jsx-repeat="entry in category.items">
|
||||
<div jsx-if="entry.type == 'query'"
|
||||
className="{this.cs({selected: entry.name == this.props.model.selected.name, navlink: true})}"
|
||||
onClick="=>this.props.controller.onQueryItemClicked(entry)">{entry.name}</div>
|
||||
<div jsx-if="entry.type == 'tree'">
|
||||
<ul>
|
||||
<li jsx-repeat="node in entry.model">
|
||||
<div onClick="=>this.props.controller.onTreeItemClicked(entry, node)"
|
||||
className="{this.cs({selected: this.isNodeSelected(entry, node), treelink1: true})}">{node.title}</div>
|
||||
<ul jsx-if="node.children.length > 0">
|
||||
<li jsx-repeat="child in node.children" onClick="=>this.props.controller.onTreeItemClicked(entry, child)">
|
||||
<div className="{this.cs({selected: this.isNodeSelected(entry, child), treelink2: true})}">{child.title}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button className="new-item-btn" jsx-repeat="typeInfo in category.newTypes" onClick="=>this.openAddItem(typeInfo.collectionId, typeInfo.typeName)"><span>Add {typeInfo.friendlyName}</span></button>
|
||||
</div>
|
||||
</div>
|
|
@ -2,5 +2,52 @@ define([
|
|||
'react',
|
||||
'lodash'
|
||||
], function (React, _) {
|
||||
return React.DOM.div.apply(this, _.flatten([{}].concat([])));
|
||||
function generated1() {
|
||||
this.props.controller.onQueryItemClicked(entry);
|
||||
}
|
||||
function generated2() {
|
||||
this.props.controller.onTreeItemClicked(entry, node);
|
||||
}
|
||||
function generated3() {
|
||||
this.props.controller.onTreeItemClicked(entry, child);
|
||||
}
|
||||
function generated4() {
|
||||
this.openAddItem(typeInfo.collectionId, typeInfo.typeName);
|
||||
}
|
||||
return React.DOM.div.apply(this, _.flatten([{ 'className': 'nav' }].concat([React.DOM.div.apply(this, _.flatten([{ 'jsx-repeat': 'category in this.props.model.nav' }].concat([
|
||||
React.DOM.div.apply(this, _.flatten([{ 'className': 'category-title' }].concat([category.name]))),
|
||||
React.DOM.div.apply(this, _.flatten([{ 'className': 'category-entries' }].concat([React.DOM.div.apply(this, _.flatten([{ 'jsx-if': 'category.items.length > 0' }].concat([React.DOM.div.apply(this, _.flatten([{ 'jsx-repeat': 'entry in category.items' }].concat([
|
||||
React.DOM.div.apply(this, _.flatten([{
|
||||
'jsx-if': 'entry.type == \'query\'',
|
||||
'className': this.cs({
|
||||
selected: entry.name == this.props.model.selected.name,
|
||||
navlink: true
|
||||
}),
|
||||
'onClick': generated1.bind(this)
|
||||
}].concat([entry.name]))),
|
||||
React.DOM.div.apply(this, _.flatten([{ 'jsx-if': 'entry.type == \'tree\'' }].concat([React.DOM.ul.apply(this, _.flatten([{}].concat([React.DOM.li.apply(this, _.flatten([{ 'jsx-repeat': 'node in entry.model' }].concat([
|
||||
React.DOM.div.apply(this, _.flatten([{
|
||||
'onClick': generated2.bind(this),
|
||||
'className': this.cs({
|
||||
selected: this.isNodeSelected(entry, node),
|
||||
treelink1: true
|
||||
})
|
||||
}].concat([node.title]))),
|
||||
React.DOM.ul.apply(this, _.flatten([{ 'jsx-if': 'node.children.length > 0' }].concat([React.DOM.li.apply(this, _.flatten([{
|
||||
'jsx-repeat': 'child in node.children',
|
||||
'onClick': generated3.bind(this)
|
||||
}].concat([React.DOM.div.apply(this, _.flatten([{
|
||||
'className': this.cs({
|
||||
selected: this.isNodeSelected(entry, child),
|
||||
treelink2: true
|
||||
})
|
||||
}].concat([child.title])))])))])))
|
||||
])))])))])))
|
||||
])))])))]))),
|
||||
React.DOM.button.apply(this, _.flatten([{
|
||||
'className': 'new-item-btn',
|
||||
'jsx-repeat': 'typeInfo in category.newTypes',
|
||||
'onClick': generated4.bind(this)
|
||||
}].concat([React.DOM.span.apply(this, _.flatten([{}].concat(['Add ' + typeInfo.friendlyName])))])))
|
||||
])))])));
|
||||
});
|
|
@ -8,11 +8,17 @@ var path = require('path');
|
|||
var dataPath = path.resolve(__dirname, '..', 'data');
|
||||
|
||||
test('timing test', function (t) {
|
||||
t.plan(1);
|
||||
t.plan(2);
|
||||
|
||||
check('div.html');
|
||||
check('test.html');
|
||||
|
||||
function check(testFile) {
|
||||
var filename = path.join(dataPath, testFile);
|
||||
var html = fs.readFileSync(filename).toString();
|
||||
var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
||||
var actual = reactTemplates.convertTemplateToReact(html);
|
||||
t.equal(actual, expected);
|
||||
}
|
||||
});
|
||||
|
||||
var filename = path.join(dataPath, 'test.html');
|
||||
var html = fs.readFileSync(filename).toString();
|
||||
var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
||||
var actual = reactTemplates.convertTemplateToReact(html);
|
||||
t.equal(actual, expected);
|
||||
});
|
Loading…
Reference in New Issue