Add tests and scope new universal analytics to its own module.

Fix errors from npm test and include all top-level APIs.
This commit is contained in:
Pat Kujawa
2014-10-13 14:28:08 -06:00
parent d4ce942373
commit b2eabd1873
2 changed files with 45 additions and 19 deletions
+20 -5
View File
@@ -1,15 +1,30 @@
/// <reference path="ga.d.ts" />
/// <reference path="../jasmine/jasmine.d.ts" />
describe('UniversalGoogleAnalytics', () => {
it('should be a function', () => {
ga('create', 'UA-65432-1');
describe('UniversalAnalytics', () => {
it('should exercise all ga APIs', () => {
ga('create', 'UA-65432-1', 'auto');
ga('create', 'UA-65432-1', {some: 'config'});
ga('create', 'UA-65432-1', 'auto', {some: 'config'});
ga('send', 'pageview');
});
it('should have methods', () => {
ga('send', 'pageview', {some: 'details'});
ga.create('UA-65432-1', 'auto');
ga.create('UA-65432-1', {some: 'config'});
ga.create('UA-65432-1', 'auto', {some: 'config'});
ga.getAll();
ga.getByName('aNamedTracker');
});
it('should excercise Tracker APIs', () => {
var tracker: UniversalAnalytics.Tracker = ga('create', 'UA-65432-1', 'auto');
var aString: string = tracker.get<string>('aString');
var aNumber: number = tracker.get<number>('aNumber');
var anObject: {} = tracker.get<{}>('anObject');
tracker.send('pageview');
tracker.send('pageview', {some: 'details'});
tracker.set('aString', aString);
tracker.set('aNumber', aNumber);
tracker.set('anObject', anObject);
});
});
describe("tester Google Analytics Tracker _gat object", () => {
+25 -14
View File
@@ -1,6 +1,6 @@
// Type definitions for Google Analytics
// Type definitions for Google Analytics (Classic and Universal)
// Project: https://developers.google.com/analytics/devguides/collection/gajs/
// Definitions by: Ronnie Haakon Hegelund <http://ronniehegelund.blogspot.dk>
// Definitions by: Ronnie Haakon Hegelund <http://ronniehegelund.blogspot.dk>, Pat Kujawa <http://patkujawa.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare class Tracker {
@@ -30,19 +30,30 @@ interface GoogleAnalyticsTracker {
_anonymizeIp(): void;
}
interface UniversalGoogleAnalytics {
(command: string, trackingId:string, opt_configObject?: {}): UniversalTracker;
(command: string, ...rest): void;
getAll(): UniversalTracker[];
getByName(trackerName: string): UniversalTracker;
declare module UniversalAnalytics {
// https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference
interface ga {
(command: string, trackingId: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
(command: string, trackingId: string, auto: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
(command: string, hitDetails: {}): void;
(command: string, hitType: string, hitDetails?: {}): void;
create(trackingId: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
create(trackingId: string, auto: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
getAll(): UniversalAnalytics.Tracker[];
getByName(name: string): UniversalAnalytics.Tracker;
}
interface Tracker {
get<T>(fieldName: string): T;
send(hitType: string, opt_fieldObject?: {}): void;
set(fieldName: string, value: string): void;
set(fieldName: string, value: {}): void;
set(fieldName: string, value: number): void;
set(fieldName: string, value: boolean): void;
}
}
interface UniversalTracker {
get(...any): any;
send(...any): any;
set(...any): any;
}
declare var ga: UniversalGoogleAnalytics;
declare var ga: UniversalAnalytics.ga;
declare var _gaq: GoogleAnalyticsCode;
declare var _gat: GoogleAnalyticsTracker;