ember-intercom-api v0.3.2
ember-intercom-api
This addon simply inject Intercom.io's script at runtime and gives you a nice interface for interaction with the script via intercom service.
Installation
ember install ember-intercom-apiUsage
You need to provide appId for Intercom's script:
// config/environment.js
ENV['ember-intercom-api'] = {
appId: '[YOUR_APP_ID]'
};Please remember that you can make use of environment variable available in config/enviroment.
This way you can set testing appId for your development or staging environment:
module.exports = function(environment) {
var ENV = {
//some stuff here
};
if (environment === 'staging' || environment === 'development') {
ENV['ember-intercom-api'] = {
appId: '[YOUR_TESTING_APP_ID]'
};
}
}Using API
Example:
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
export default Route.extend({
intercom: service(),
beforeModel() {
this.get('intercom').boot();
}
});Exposed API
These methods are exposed via intercom service and invoked on the Intercom script. Read The Intercom JavaScript API for more information.
.boot(intercomSettings)-intercomSettingsparam is optional. If not given thenapp_idprovided inconfig/environment.jswill be used.getVisitorId().hide().show().showMessages().showNewMessage(text)-textparam is optional.shutdown().trackEvent(eventName, params).update(params)
Tests
You would rather like to avoid injecting Intercom's script to your Acceptance Tests and send the data.
This could be done by just not adding ember-intercom-api options to ENV variable:
module.exports = function(environment) {
var ENV = {
//some stuff here
};
if (environment !== 'test') {
ENV['ember-intercom-api'] = {
appId: '[YOUR_APP_ID]'
};
}
}or even better (as a more comprehensive example):
module.exports = function(environment) {
var ENV = {
//some stuff here
};
switch(environment) {
case 'production':
ENV['ember-intercom-api'] = {
appId: '[YOUR_APP_ID]'
};
break;
case 'staging':
case 'development':
ENV['ember-intercom-api'] = {
appId: '[YOUR_TESTING_APP_ID]'
};
break;
default:
break;
}
}Linting
npm run lint:jsnpm run lint:js -- --fix
Running tests
ember test– Runs the test suite on the current Ember versionember test --server– Runs the test suite in "watch mode"ember try:each– Runs the test suite against multiple Ember versions
Running the dummy application
ember serve- Visit the dummy application at http://localhost:4200.
For more information on using ember-cli, visit https://ember-cli.com/.
License
This project is licensed under the MIT License.