Code coverage report for src/components/late-icon.cjsx

Statements: 94.44% (17 / 18)      Branches: 83.33% (5 / 6)      Functions: 100% (3 / 3)      Lines: 94.44% (17 / 18)      Ignored: none     

All files » src/components/ » late-icon.cjsx
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                                           364× 364× 364× 364× 150×   214× 214×     214× 214×                  
var BS, React, S, TaskHelper;
 
React = require('react');
 
BS = require('react-bootstrap');
 
S = require('../helpers/string');
 
TaskHelper = require('../helpers/task');
 
module.exports = React.createClass({
  displayName: 'LateIcon',
  propTypes: {
    task: React.PropTypes.shape({
      due_at: React.PropTypes.string,
      last_worked_at: React.PropTypes.string,
      type: React.PropTypes.string,
      status: React.PropTypes.string
    }).isRequired,
    buildLateMessage: React.PropTypes.func
  },
  getDefaultProps: function() {
    return {
      buildLateMessage: function(task, status) {
        return S.capitalize(task.type) + ' was started ' + status.how_late + ' late';
      }
    };
  },
  render: function() {
    var buildLateMessage, className, classes, ref, status, task, tooltip;
    ref = this.props, task = ref.task, className = ref.className, buildLateMessage = ref.buildLateMessage;
    status = TaskHelper.getLateness(task);
    if (task.status === 'not_started' || !status.is_late) {
      return null;
    }
    classes = 'late';
    Iif (className != null) {
      classes += " " + className;
    }
    tooltip = React.createElement(BS.Tooltip, null, buildLateMessage(task, status));
    return React.createElement(BS.OverlayTrigger, {
      "placement": 'top',
      "overlay": tooltip
    }, React.createElement("i", {
      "className": classes
    }));
  }
});