UNPKG

es6-react-admin-lte

Version:

An AdminLTE Template made to use for React and ES2015-and-so-on

486 lines (485 loc) 16.2 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for components/chat-box/chat-box.jsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../index.html">All files</a> / <a href="index.html">components/chat-box</a> chat-box.jsx </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">51.61% </span> <span class="quiet">Statements</span> <span class='fraction'>16/31</span> </div> <div class='fl pad1y space-right2'> <span class="strong">50% </span> <span class="quiet">Branches</span> <span class='fraction'>6/12</span> </div> <div class='fl pad1y space-right2'> <span class="strong">40% </span> <span class="quiet">Functions</span> <span class='fraction'>4/10</span> </div> <div class='fl pad1y space-right2'> <span class="strong">50% </span> <span class="quiet">Lines</span> <span class='fraction'>15/30</span> </div> </div> </div> <div class='status-line medium'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react'; import ReactDOM from 'react-dom'; import * as commonFuncs from '../../services/common-functions'; import PropTypes from 'prop-types'; &nbsp; class ChatBox extends React.Component { constructor(props) { super(props); this.state = { message: '' }; this.toggleCollapse = this.toggleCollapse.bind(this); this.removeBox = this.removeBox.bind(this); this.toggleChat = this.toggleChat.bind(this); this.onSendMessage = this.onSendMessage.bind(this); this.isContacts = this.isContacts.bind(this); } &nbsp; <span class="fstat-no" title="function not covered" > to</span>ggleCollapse(e) { const box = <span class="cstat-no" title="statement not covered" >ReactDOM.findDOMNode(this).children[0];</span> const boxBody = <span class="cstat-no" title="statement not covered" >ReactDOM.findDOMNode(this).children[0].children[1];</span> const icon = <span class="cstat-no" title="statement not covered" >e.currentTarget.children[0];</span> <span class="cstat-no" title="statement not covered" > commonFuncs.toggleBoxCollapse(box, boxBody, icon);</span> } &nbsp; <span class="fstat-no" title="function not covered" > re</span>moveBox() { const box = <span class="cstat-no" title="statement not covered" >ReactDOM.findDOMNode(this).children[0];</span> <span class="cstat-no" title="statement not covered" > commonFuncs.removeBox(box);</span> } &nbsp; <span class="fstat-no" title="function not covered" > to</span>ggleChat() { const box = <span class="cstat-no" title="statement not covered" >ReactDOM.findDOMNode(this).children[0];</span> const classy = <span class="cstat-no" title="statement not covered" >' direct-chat-contacts-open';</span> <span class="cstat-no" title="statement not covered" > if (box.className.indexOf(classy) &gt;= 0) {</span> <span class="cstat-no" title="statement not covered" > box.className = box.className.replace(classy, '');</span> } else { <span class="cstat-no" title="statement not covered" > box.className = `${box.className}${classy}`;</span> } } &nbsp; isContacts() { let hasContactChild = false; React.Children.forEach(this.props.children, child =&gt; { <span class="missing-if-branch" title="else path not taken" >E</span>if (`${child.type}`.includes('Contacts')) { hasContactChild = true; } }); return this.props.children &amp;&amp; hasContactChild; } &nbsp; <span class="fstat-no" title="function not covered" > on</span>SendMessage(e) { <span class="cstat-no" title="statement not covered" > e.preventDefault();</span> <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span> <span class="cstat-no" title="statement not covered" > this.props.onSubmit(this.state.message);</span> } &nbsp; render() { const borderClass = this.props.border === true ? <span class="branch-0 cbranch-no" title="branch not covered" >'box-solid' </span>: ''; return ( &lt;div className={`col-md-${this.props.width}`}&gt; &lt;div className={`box direct-chat ${this.props.headerTheme} ${this.props.chatTheme} ${borderClass}`}&gt; &lt;div className="box-header with-border"&gt; &lt;h3 className="box-title"&gt;{this.props.title}&lt;/h3&gt; &lt;div className="box-tools pull-right"&gt; {this.props.notifications &gt; 0 ? ( &lt;span data-toggle="tooltip" title="" className={`badge ${this.props.notificationTheme}`} data-original-title={`${this.props.notifications} New Messages`}&gt; {this.props.notifications} &lt;/span&gt; ) : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span> {this.isContacts() ? ( &lt;button className="btn btn-box-tool" data-toggle="tooltip" title="" data-widget="chat-pane-toggle" data-original-title="Contacts" onClick={this.toggleChat}&gt; &lt;i className="fa fa-comments" /&gt; &lt;/button&gt; ) : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span> &lt;button className="btn btn-box-tool" data-toggle="collapse" onClick={this.toggleCollapse}&gt; &lt;i className="fa fa-minus" /&gt; &lt;/button&gt; &lt;button className="btn btn-box-tool" data-toggle="remove" onClick={this.removeBox}&gt; &lt;i className="fa fa-times" /&gt; &lt;/button&gt; &lt;/div&gt; &lt;/div&gt; &lt;div className="box-body"&gt; {this.props.children} &lt;/div&gt; &lt;div className="box-footer"&gt; &lt;form noValidate onSubmit={this.onSendMessage}&gt; &lt;input type="text" name="message" placeholder="Type message..." className="form-control" value={this.state.message} onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; { <span class="cstat-no" title="statement not covered" > this.setState({ message: e.currentTarget.value });</span> }} /&gt; &lt;span className="input-group-btn"&gt; &lt;button type="button" className={`btn btn-flat ${this.props.buttonTheme}`} onClick={this.onSendMessage} &gt; Send &lt;/button&gt; &lt;/span&gt; &lt;/form&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; ); } } &nbsp; ChatBox.propTypes = { width: PropTypes.number, border: PropTypes.bool, headerTheme: PropTypes.string, notificationTheme: PropTypes.string, chatTheme: PropTypes.string, buttonTheme: PropTypes.string, title: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]), notifications: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]), onSubmit: PropTypes.func }; ChatBox.defaultProps = { width: 3, border: false, headerTheme: 'box-primary', notificationTheme: 'bg-light-blue', chatTheme: 'direct-chat-primary', buttonTheme: 'btn-primary', title: 'Chat Box', notifications: 0, onSubmit: <span class="fstat-no" title="function not covered" >()</span> =&gt; {} }; &nbsp; export default ChatBox; &nbsp;</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Apr 27 2018 14:57:56 GMT-0400 (EDT) </div> </div> <script src="../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../sorter.js"></script> </body> </html>