suman-server
Version:
Server/DB/watcher for Suman test runner
75 lines (61 loc) • 1.98 kB
JavaScript
;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Created by denmanm1 on 3/30/16.
*/
var React = require('react');
var _ = require('lodash');
module.exports = React.createClass({
displayName: 'exports',
findChildren: function findChildren(ids) {
return this.props.data.filter(function (item) {
return _.includes(ids, item.testId);
});
},
recurse: function recurse(item) {
var _this = this;
var children = this.findChildren(item.children.map(function (child) {
return child.testId;
}));
return React.createElement(
'div',
{ className: 'describe' },
item.desc,
React.createElement(
'div',
{ className: 'test-cases' },
'Test Cases:',
(0, _stringify2.default)(item.tests)
),
React.createElement(
'div',
{ className: 'suite-children' },
item.children.length > 0 ? 'Children of ' + item.desc : '(no children)',
children.map(function (child) {
return _this.recurse(child);
})
)
);
},
getDescribes: function getDescribes() {
console.log('data:', this.props.data);
if (this.props.data && this.props.data[0]) {
return this.recurse(this.props.data[0]);
} else {
return React.createElement(
'div',
null,
'Insert spinner here'
);
}
},
render: function render() {
return React.createElement(
'div',
{ className: 'accordion-item' },
this.getDescribes()
);
}
});