suman-server
Version:
Server/DB/watcher for Suman test runner
175 lines (159 loc) • 5.19 kB
JavaScript
'use strict';
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);
});
},
formatTestCases: function formatTestCases(items) {
var testCases = items.map(function (tests) {
return React.createElement(
'li',
{ className: 'testResults' },
'Test Description: ',
React.createElement(
'span',
{ className: 'items' },
tests.desc
),
', Completed: ',
tests.complete ? React.createElement(
'span',
{ className: 'items', id: 'tick' },
'✓'
) : React.createElement(
'span',
{ className: 'items', id: 'cross' },
'✗'
),
', Type: ',
React.createElement(
'span',
{ className: 'items' },
tests.type
),
', Test error: ',
!tests.error ? React.createElement(
'span',
{ className: 'items' },
'(null)'
) : React.createElement(
'span',
{ className: 'items', id: 'errors' },
tests.error
),
', Timeout: ',
React.createElement(
'span',
{ className: 'items' },
tests.timeout
),
', DateStarted: ',
React.createElement(
'span',
{ className: 'items' },
tests.dateStarted
),
', DateComplete: ',
React.createElement(
'span',
{ className: 'items' },
tests.dateComplete
),
'Total time: ',
React.createElement(
'span',
{ className: 'items' },
tests.dateComplete - tests.dateStarted
)
);
}.bind(this));
return React.createElement(
'ul',
null,
testCases
);
},
testCases: function testCases(item) {
if (item.length === 0) {
return React.createElement(
'div',
{ className: 'no-tests' },
'Test Cases not defined'
);
} else {
return React.createElement(
'div',
null,
this.formatTestCases(item)
);
}
},
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' },
React.createElement(
'ul',
null,
React.createElement(
'li',
{ className: 'descriptionName' },
React.createElement(
'label',
null,
'Description: \'',
item.desc,
'\', options: ',
(0, _stringify2.default)(item.opts)
)
),
item.tests.length > 0 ? React.createElement(
'div',
{ className: 'test-cases' },
'Test Cases:',
this.testCases(item.tests)
) : null,
React.createElement(
'div',
{ className: 'suite-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()
);
}
});