-
Notifications
You must be signed in to change notification settings - Fork 687
/
Copy pathrazorTelemetry.integration.test.ts
55 lines (48 loc) · 2.29 KB
/
razorTelemetry.integration.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as path from 'path';
import * as vscode from 'vscode';
import testAssetWorkspace from '../integrationTests/testAssets/testAssetWorkspace';
import { activateCSharpExtension } from '../integrationTests/integrationHelpers';
import { htmlLanguageFeaturesExtensionReady } from "./testUtils";
import { EventStream } from '../../src/EventStream';
import { EventType } from '../../src/omnisharp/EventType';
import { TelemetryEvent } from 'microsoft.aspnetcore.razor.vscode/dist/HostEventStream';
import { Subscription } from 'rxjs';
let eventStream: EventStream;
let subscription: Subscription;
suite(`Razor Telemetry ${testAssetWorkspace.description}`, () => {
suiteSetup(async function () {
eventStream = (await activateCSharpExtension()).eventStream;
await htmlLanguageFeaturesExtensionReady();
await testAssetWorkspace.restore();
});
suiteTeardown(async () => {
await testAssetWorkspace.cleanupWorkspace();
});
teardown(() => {
if (subscription) {
subscription.unsubscribe();
}
});
test("The DocumentOpened telemevent is received when a document is opened", async () => {
let telemetryEventResolver: (value?: any) => void;
// tslint:disable-next-line:promise-must-complete
const extensionActivated = new Promise(resolve => {
telemetryEventResolver = resolve;
});
subscription = eventStream.subscribe(event =>{
if (event.type == EventType.TelemetryEvent) {
let possibleRazorEvent = <TelemetryEvent>event;
if (possibleRazorEvent.eventName == "VSCode.Razor.DocumentOpened") {
telemetryEventResolver();
}
}
});
const filePath = path.join(testAssetWorkspace.projects[0].projectDirectoryPath, 'Pages', 'Index.cshtml');
await vscode.workspace.openTextDocument(filePath);
await extensionActivated;
});
});