From 565f971f4338664b492e6ca5465e0b6c30b1d381 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 4 Oct 2018 18:13:47 -0700 Subject: [PATCH] Add basic test for webview communication --- .../src/singlefolder-tests/webview.test.ts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 extensions/vscode-api-tests/src/singlefolder-tests/webview.test.ts diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/webview.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/webview.test.ts new file mode 100644 index 00000000000..8eae4f8477a --- /dev/null +++ b/extensions/vscode-api-tests/src/singlefolder-tests/webview.test.ts @@ -0,0 +1,50 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import 'mocha'; +import * as assert from 'assert'; +import * as vscode from 'vscode'; + +const webviewId = 'myWebview'; + +suite('Webview tests', () => { + + test('webview communication', async () => { + const webview = vscode.window.createWebviewPanel(webviewId, 'title', { viewColumn: vscode.ViewColumn.One }, { enableScripts: true }); + webview.webview.html = createHtmlDocumentWithBody(/*html*/` + `); + + const p = new Promise(resolve => { + webview.webview.onDidReceiveMessage(message => { + resolve(message); + }); + }); + + webview.webview.postMessage({ value: 1 }); + const response = await p; + assert.strictEqual(response.value, 2); + }); +}); + +function createHtmlDocumentWithBody(body: string): string { + return /*html*/` + + + + + + Document + + + ${body} + +`; +} + -- GitLab