Home

Awesome

Ember-cli-ajax-logger Travis CI Build Status

This simple ember-cli addon add ability to log ajax requests inside application.

##Motivation Add access to requests/responses logs while intergration testing with Selenium.

#Configuration

Default configuration is

{
  disabled: false,
  globalName: 'emberCliAjaxLogger',
  getItemForSerializer: (event, jqXHR, ajaxOptions)=> {
    const { type, data, url } = ajaxOptions;
    return JSON.stringify({
      url,
      type,
      data,
      responseText: jqXHR.responseText
    });
  }
}

It's a part of env-config (section 'ember-cli-ajax-logger' in config/environment.js )

module.exports = function(environment) {
  var ENV = {
    modulePrefix: 'dummy',
    environment: environment,
    baseURL: '/',
    locationType: 'auto',
    EmberENV: {
    },

    APP: {

    },

    'ember-cli-ajax-logger': {
      globalName: 'emberCliAjaxLogger'
    }
  };


  return ENV;
};

Option globalName set the window property which contains logger object.

#API

To use logger instance you should use window[globalName] by default it's window.emberCliAjaxLogger.

Logger instance has next interface ( most of functions return logger instance thus you can use chain constructions )

Example

Example ( from addon's initializer ) of usage

    LoggerObject
      .setGetItemForSerializer(({ _event, xhr, settings })=> {
	    const { type, data, url } = settings;
	    return JSON.stringify({
	      url,
	      type,
	      data,
	      responseText: xhr.responseText
	    });
	  })
      .setFilterFunction((_item)=> true) // no filtering
      .register('emberCliAjaxLogger')
      .subscribe()
      .enableLogging();

Also you can check existing tests here: https://github.com/vvscode/js--ember-cli-ajax-logger/blob/master/tests/acceptance/logger-test.js