Code coverage report for src/flux/app.coffee

Statements: 28% (7 / 25)      Branches: 0% (0 / 12)      Functions: 0% (0 / 3)      Lines: 28% (7 / 25)      Ignored: none     

All files » src/flux/ » app.coffee
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                                                                                                          
var AppConfig, _, actions, flux, makeSimpleStore, ref, store;
 
flux = require('flux-react');
 
_ = require('underscore');
 
makeSimpleStore = require('./helpers').makeSimpleStore;
 
AppConfig = {
  setServerError: function(statusCode, message, requestDetails) {
    var opts, request, sparseOpts, url;
    url = requestDetails.url, opts = requestDetails.opts;
    if (!opts.displayError) {
      return;
    }
    sparseOpts = _.pick(opts, 'method', 'data');
    request = {
      url: url,
      opts: sparseOpts
    };
    this._currentServerError = {
      statusCode: statusCode,
      message: message,
      request: request
    };
    return this.emit('server-error', statusCode, message);
  },
  exports: {
    getError: function() {
      return this._currentServerError;
    },
    errorNavigation: function() {
      var isGET404, isInRange, ref, request, statusCode;
      if (!this._currentServerError) {
        return {};
      }
      ref = this._currentServerError, statusCode = ref.statusCode, request = ref.request;
      if (statusCode === 403) {
        return {
          href: '/'
        };
      } else {
        isGET404 = statusCode === 404 && request.method === 'GET';
        isInRange = (400 <= statusCode && statusCode < 600);
        return {
          shouldReload: isInRange && !isGET404
        };
      }
    }
  }
};
 
ref = makeSimpleStore(AppConfig), actions = ref.actions, store = ref.store;
 
module.exports = {
  AppActions: actions,
  AppStore: store
};