1+ /*---------------------------------------------------------------------------------------------
2+ * Copyright (c) Microsoft Corporation. All rights reserved.
3+ * Licensed under the MIT License. See License.txt in the project root for license information.
4+ *--------------------------------------------------------------------------------------------*/
5+
6+ import { use as chaiUse , expect , should } from 'chai' ;
7+ import { vscode } from '../../../src/vscodeAdapter' ;
8+ import { getFakeVsCode } from '../testAssets/Fakes' ;
9+ import 'rxjs/add/observable/fromPromise' ;
10+ import 'rxjs/add/operator/timeout' ;
11+ import { ErrorMessageObserver } from '../../../src/observers/ErrorMessageObserver' ;
12+ import { ZipError } from '../../../src/omnisharp/loggingEvents' ;
13+
14+ chaiUse ( require ( 'chai-as-promised' ) ) ;
15+ chaiUse ( require ( 'chai-string' ) ) ;
16+
17+ suite ( "ErrorMessageObserver" , ( ) => {
18+ suiteSetup ( ( ) => should ( ) ) ;
19+
20+ let vscode : vscode = getFakeVsCode ( ) ;
21+ let errorMessage : string ;
22+ let observer = new ErrorMessageObserver ( vscode ) ;
23+
24+ vscode . window . showErrorMessage = async ( message : string , ...items : string [ ] ) => {
25+ errorMessage = message ;
26+ return Promise . resolve < string > ( "Done" ) ;
27+ } ;
28+
29+ setup ( ( ) => {
30+ errorMessage = undefined ;
31+ } ) ;
32+
33+ test ( 'ZipError: Error message is shown' , ( ) => {
34+ let event = new ZipError ( "This is an error" ) ;
35+ observer . post ( event ) ;
36+ expect ( errorMessage ) . to . be . equal ( "This is an error" ) ;
37+ } ) ;
38+ } ) ;
0 commit comments