Code coverage report for src/components/task-step/index.cjsx

Statements: 88.89% (32 / 36)      Branches: 37.5% (3 / 8)      Functions: 85.71% (6 / 7)      Lines: 88.89% (32 / 36)      Ignored: none     

All files » src/components/task-step/ » index.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 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                                                 402× 402× 402×                   402× 402× 402× 402× 402× 402×                       25× 25× 25× 25× 25×       165× 165× 165×         165× 402×                  
var Exercise, ExternalUrl, Interactive, LoadableItem, Placeholder, React, Reading, STEP_TYPES, Spacer, SpyMode, StepPanel, TaskStepActions, TaskStepLoaded, TaskStepStore, TaskStore, Video, err, getStepType, ref, ref1,
  slice = [].slice;
 
React = require('react');
 
SpyMode = require('openstax-react-components').SpyMode;
 
TaskStore = require('../../flux/task').TaskStore;
 
ref = require('../../flux/task-step'), TaskStepActions = ref.TaskStepActions, TaskStepStore = ref.TaskStepStore;
 
LoadableItem = require('../loadable-item');
 
ref1 = require('./all-steps'), Reading = ref1.Reading, Interactive = ref1.Interactive, Video = ref1.Video, Exercise = ref1.Exercise, Placeholder = ref1.Placeholder, Spacer = ref1.Spacer, ExternalUrl = ref1.ExternalUrl;
 
StepPanel = require('../../helpers/policies').StepPanel;
 
err = function() {
  var msgs;
  msgs = 1 <= arguments.length ? slice.call(arguments, 0) : [];
  console.error.apply(console, msgs);
  throw new Error(JSON.stringify.apply(JSON, msgs));
};
 
STEP_TYPES = {
  reading: Reading,
  interactive: Interactive,
  video: Video,
  exercise: Exercise,
  placeholder: Placeholder,
  spacer: Spacer,
  external_url: ExternalUrl
};
 
getStepType = function(typeName) {
  var type;
  type = STEP_TYPES[typeName];
  return type || err('BUG: Invalid task step type', typeName);
};
 
TaskStepLoaded = React.createClass({
  displayName: 'TaskStepLoaded',
  propTypes: {
    id: React.PropTypes.string.isRequired,
    onNextStep: React.PropTypes.func.isRequired,
    onStepCompleted: React.PropTypes.func.isRequired
  },
  render: function() {
    var Type, id, ref2, spy, taskId, type;
    ref2 = this.props, id = ref2.id, taskId = ref2.taskId;
    type = TaskStepStore.get(id).type;
    spy = TaskStore.get(taskId).spy;
    Type = getStepType(type);
    return React.createElement("div", null, React.createElement(Type, React.__spread({}, this.props)), React.createElement(SpyMode.Content, {
      "className": 'task-ecosystem-info'
    }, "TaskId: ", taskId, ", StepId: ", id, ", Ecosystem: ", (spy != null ? spy.ecosystem_title : void 0)));
  }
});
 
module.exports = React.createClass({
  displayName: 'TaskStep',
  propTypes: {
    id: React.PropTypes.string.isRequired,
    onNextStep: React.PropTypes.func.isRequired
  },
  onStepCompleted: function() {
    var canWrite, id;
    id = this.props.id;
    canWrite = StepPanel.canWrite(id);
    Eif (canWrite) {
      return TaskStepActions.complete(id);
    }
  },
  render: function() {
    var id;
    id = this.props.id;
    return React.createElement(LoadableItem, {
      "id": id,
      "store": TaskStepStore,
      "actions": TaskStepActions,
      "renderItem": ((function(_this) {
        return function() {
          return React.createElement(TaskStepLoaded, React.__spread({}, _this.props, {
            "onStepCompleted": _this.onStepCompleted
          }));
        };
      })(this))
    });
  }
});