提交 6fa73fce 编写于 作者: J Johannes Rieken

add tests for additional properties

上级 b894e0ae
...@@ -60,7 +60,7 @@ export class AIAdapter implements IAIAdapter { ...@@ -60,7 +60,7 @@ export class AIAdapter implements IAIAdapter {
constructor( constructor(
private _eventPrefix: string, 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 clientFactoryOrAiKey: (() => typeof appInsights.client) | string // allow factory function for testing
) { ) {
if (!this._additionalDataToLog) { if (!this._additionalDataToLog) {
...@@ -140,11 +140,13 @@ export class AIAdapter implements IAIAdapter { ...@@ -140,11 +140,13 @@ export class AIAdapter implements IAIAdapter {
return; return;
} }
this._additionalDataToLog().then(additionalData => { 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); let {properties, measurements} = AIAdapter._getData(data);
this._aiClient.trackEvent(this._eventPrefix + '/' + eventName, properties, measurements); this._aiClient.trackEvent(this._eventPrefix + '/' + eventName, properties, measurements);
}, err => {
console.error(err);
}); });
} }
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
'use strict'; 'use strict';
import * as assert from 'assert'; 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 { interface IAppInsightsEvent {
eventName: string; eventName: string;
...@@ -60,6 +61,18 @@ suite('AIAdapter', () => { ...@@ -60,6 +61,18 @@ suite('AIAdapter', () => {
assert.equal(appInsightsMock.events[0].eventName, `${prefix}/testEvent`); 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', () => { test('Track UnhandledError as exception and events', () => {
var sampleError = new Error('test'); var sampleError = new Error('test');
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册