Code coverage report for src/components/reference-book/exercise.cjsx

Statements: 52.78% (19 / 36)      Branches: 18.75% (3 / 16)      Functions: 50% (4 / 8)      Lines: 52.78% (19 / 36)      Ignored: none     

All files » src/components/reference-book/ » exercise.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                                                                           50× 50× 50×     25× 25× 25×                       25× 25× 25×                 25×                              
var ArbitraryHtmlAndMath, LoadableItem, Question, React, ReferenceBookExercise, ReferenceBookExerciseActions, ReferenceBookExerciseShell, ReferenceBookExerciseStore, ReferenceBookMissingExercise, ref, ref1;
 
React = require('react');
 
ref = require('../../flux/reference-book-exercise'), ReferenceBookExerciseActions = ref.ReferenceBookExerciseActions, ReferenceBookExerciseStore = ref.ReferenceBookExerciseStore;
 
LoadableItem = require('../loadable-item');
 
ref1 = require('openstax-react-components'), ArbitraryHtmlAndMath = ref1.ArbitraryHtmlAndMath, Question = ref1.Question;
 
ReferenceBookMissingExercise = React.createClass({
  displayName: 'ReferenceBookMissingExercise',
  render: function() {
    var exerciseAPIUrl;
    exerciseAPIUrl = this.props.exerciseAPIUrl;
    return React.createElement("small", {
      "className": 'reference-book-missing-exercise',
      "data-exercise-url": exerciseAPIUrl
    }, React.createElement("i", null, "Missing exercise"));
  }
});
 
ReferenceBookExercise = React.createClass({
  displayName: 'ReferenceBookExercise',
  render: function() {
    var exerciseAPIUrl, items, question, questions, ref2, ref3;
    exerciseAPIUrl = this.props.exerciseAPIUrl;
    items = ReferenceBookExerciseStore.get(exerciseAPIUrl).items;
    if (!((items != null ? items.length : void 0) && ((items != null ? (ref2 = items[0]) != null ? (ref3 = ref2.questions) != null ? ref3[0] : void 0 : void 0 : void 0) != null))) {
      console.warn("WARNING: " + exerciseAPIUrl + " appears to be missing.");
      return React.createElement(ReferenceBookMissingExercise, {
        "exerciseAPIUrl": exerciseAPIUrl
      });
    }
    questions = items[0].questions;
    question = questions[0];
    return React.createElement(Question, {
      "model": question
    });
  }
});
 
ReferenceBookExerciseShell = React.createClass({
  displayName: 'ReferenceBookExerciseShell',
  isLoading: function() {
    var exerciseAPIUrl;
    exerciseAPIUrl = this.props.exerciseAPIUrl;
    return ReferenceBookExerciseStore.isLoading(exerciseAPIUrl) || ReferenceBookExerciseStore.isQueued(exerciseAPIUrl);
  },
  load: function() {
    var exerciseAPIUrl;
    exerciseAPIUrl = this.props.exerciseAPIUrl;
    Iif (!this.isLoading()) {
      return ReferenceBookExerciseActions.load(exerciseAPIUrl);
    }
  },
  renderExercise: function() {
    var exerciseHtml;
    exerciseHtml = React.renderToStaticMarkup(React.createElement(ReferenceBookExercise, React.__spread({}, this.props)));
    return React.createElement(ArbitraryHtmlAndMath, {
      "html": exerciseHtml
    });
  },
  render: function() {
    var exerciseAPIUrl;
    exerciseAPIUrl = this.props.exerciseAPIUrl;
    return React.createElement(LoadableItem, {
      "id": exerciseAPIUrl,
      "bindEvent": "loaded." + exerciseAPIUrl,
      "isLoading": this.isLoading,
      "load": this.load,
      "store": ReferenceBookExerciseStore,
      "actions": ReferenceBookExerciseActions,
      "renderItem": this.renderExercise,
      "renderLoading": (function() {
        return React.createElement("span", {
          "className": 'loading-exercise'
        }, "Loading exercise...");
      }),
      "renderError": (function() {
        return React.createElement(ReferenceBookMissingExercise, null);
      })
    });
  }
});
 
module.exports = {
  ReferenceBookExercise: ReferenceBookExercise,
  ReferenceBookExerciseShell: ReferenceBookExerciseShell
};