/analytics.js-integrations

[WIP] Analytics.js integrations

Primary LanguageJavaScriptMIT LicenseMIT

Analytics.js Integrations

Circle CI Style

License

Released under the MIT license.

Configuration

Yarn

Use always yarn, not npm to install your packges.

Lint

JavaScript Style Guide

Tests

Karma + Mocha. Supported browsers:

  • Chrome headless (local and CircleCI)
  • Chrome latest (CircleCI only)
  • Firefox latest (CircleCI only)
  • Safari 9 (CircleCI only)
  • IE 9 (CircleCI only)
  • IE 10 (CircleCI only)
  • IE 11 (CircleCI only)
  • Edge latest (CircleCI only)
  • Test one integration: $ yarn test-integration <integration-name> <browser-type>
  • Test updated integrations (require Golang): $ yarn test-updated-integrations <browser-type>
  • Test all integrarions: $ yarn test-all-integrations <browser-type>

You can ignore specific browsers from an integration tests adding the file .browserignore to the integration folder with one browser name per line.

Some integrations require SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables to be set. This can be bypassed by using chromeHeadless as <browser-type>.

Releasing Changes

Follow this guide to deploy your changes.

Credentials

(Work in progress) Do not hardcode secrets, account ids or other credentials in the code. If a credential gets commited and upload, it has to be immediately removed and revoked.

Code Coverage

Code coverage reports can be found after test runs in coverage/report. To quickly open detailed reports in your browser run yarn coverage-report. The project uses Istanbul for coverage reporting. If you're unfamiliar with Istanbul or code coverage in general you can find an excellent summary on reading reports here.

Pull Requests and releases

Make sure your PR includes the new version in package.json. When the PR gets merged, it will automatically be published.

IMPORTANT: Auto-release is not activated for new integrations. If you want to publish your new, shiny integration, merge the pull request and publish the first version manually.