From 6fa73fce2fe5bd5861778e5aad7d9b5cd17a5e9a Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 6 May 2016 16:26:44 +0200 Subject: [PATCH] add tests for additional properties --- src/vs/base/node/aiAdapter.ts | 10 ++++++---- src/vs/base/test/node/aiAdapter/aiAdapter.test.ts | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/vs/base/node/aiAdapter.ts b/src/vs/base/node/aiAdapter.ts index 5facd711274..850f255ffdb 100644 --- a/src/vs/base/node/aiAdapter.ts +++ b/src/vs/base/node/aiAdapter.ts @@ -60,7 +60,7 @@ export class AIAdapter implements IAIAdapter { constructor( private _eventPrefix: string, - private _additionalDataToLog: () => TPromise<{ [key: string]: string | number }>, + private _additionalDataToLog: () => TPromise<{ [key: string]: any }>, clientFactoryOrAiKey: (() => typeof appInsights.client) | string // allow factory function for testing ) { if (!this._additionalDataToLog) { @@ -140,11 +140,13 @@ export class AIAdapter implements IAIAdapter { return; } this._additionalDataToLog().then(additionalData => { - data = mixin(data, additionalData); + return mixin(data, additionalData); + }, err => { + console.error(err); // ignore? + return data; + }).done(data => { let {properties, measurements} = AIAdapter._getData(data); this._aiClient.trackEvent(this._eventPrefix + '/' + eventName, properties, measurements); - }, err => { - console.error(err); }); } diff --git a/src/vs/base/test/node/aiAdapter/aiAdapter.test.ts b/src/vs/base/test/node/aiAdapter/aiAdapter.test.ts index 414f192c15a..291871b2c36 100644 --- a/src/vs/base/test/node/aiAdapter/aiAdapter.test.ts +++ b/src/vs/base/test/node/aiAdapter/aiAdapter.test.ts @@ -5,7 +5,8 @@ 'use strict'; import * as assert from 'assert'; -import { AIAdapter } from 'vs/base/node/aiAdapter'; +import {TPromise} from 'vs/base/common/winjs.base'; +import {AIAdapter} from 'vs/base/node/aiAdapter'; interface IAppInsightsEvent { eventName: string; @@ -60,6 +61,18 @@ suite('AIAdapter', () => { assert.equal(appInsightsMock.events[0].eventName, `${prefix}/testEvent`); }); + test('addional data', () => { + adapter = new AIAdapter(prefix, () => TPromise.as({ first: '1st', second: 2, third: true }), () => appInsightsMock); + adapter.log('testEvent'); + + assert.equal(appInsightsMock.events.length, 1); + let [first] = appInsightsMock.events; + assert.equal(first.eventName, `${prefix}/testEvent`); + assert.equal(first.properties['first'], '1st'); + assert.equal(first.measurements['second'], '2'); + assert.equal(first.measurements['third'], 1); + }); + test('Track UnhandledError as exception and events', () => { var sampleError = new Error('test'); -- GitLab