@@ -5,93 +5,85 @@ import * as assert from "assert";
55import utils = require( "../utils" ) ;
66import { IExternalPowerShellDetails , IPowerShellExtensionClient } from "../../src/features/ExternalApi" ;
77
8- describe ( "ExternalApi feature - Registration API" , function ( ) {
9- let powerShellExtensionClient : IPowerShellExtensionClient ;
10- before ( async function ( ) {
11- const powershellExtension = await utils . ensureExtensionIsActivated ( ) ;
12- powerShellExtensionClient = powershellExtension ! . exports as IPowerShellExtensionClient ;
13- } ) ;
8+ describe ( "ExternalApi feature" , function ( ) {
9+ describe ( "External extension registration" , function ( ) {
10+ let powerShellExtensionClient : IPowerShellExtensionClient ;
11+ before ( async function ( ) {
12+ const powershellExtension = await utils . ensureExtensionIsActivated ( ) ;
13+ powerShellExtensionClient = powershellExtension ! . exports as IPowerShellExtensionClient ;
14+ } ) ;
1415
15- it ( "It can register and unregister an extension" , function ( ) {
16- const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
17- assert . notStrictEqual ( sessionId , "" ) ;
18- assert . notStrictEqual ( sessionId , null ) ;
19- assert . strictEqual (
20- powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ,
21- true ) ;
22- } ) ;
16+ it ( "Registers and unregisters an extension" , function ( ) {
17+ const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
18+ assert . notStrictEqual ( sessionId , "" ) ;
19+ assert . notStrictEqual ( sessionId , null ) ;
20+ assert . strictEqual (
21+ powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ,
22+ true ) ;
23+ } ) ;
2324
24- it ( "It can register and unregister an extension with a version" , function ( ) {
25- const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId , "v2" ) ;
26- assert . notStrictEqual ( sessionId , "" ) ;
27- assert . notStrictEqual ( sessionId , null ) ;
28- assert . strictEqual (
29- powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ,
30- true ) ;
31- } ) ;
25+ it ( "Registers and unregisters an extension with a version" , function ( ) {
26+ const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId , "v2" ) ;
27+ assert . notStrictEqual ( sessionId , "" ) ;
28+ assert . notStrictEqual ( sessionId , null ) ;
29+ assert . strictEqual (
30+ powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ,
31+ true ) ;
32+ } ) ;
3233
33- /*
34- NEGATIVE TESTS
35- */
36- it ( "API fails if not registered" , async function ( ) {
37- assert . rejects (
38- async ( ) => await powerShellExtensionClient . getPowerShellVersionDetails ( "" ) )
39- } ) ;
34+ it ( "Rejects if not registered" , async function ( ) {
35+ assert . rejects (
36+ async ( ) => await powerShellExtensionClient . getPowerShellVersionDetails ( "" ) )
37+ } ) ;
38+
39+ it ( "Throws if attempting to register an extension more than once" , async function ( ) {
40+ const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
41+ try {
42+ assert . throws (
43+ ( ) => powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ,
44+ {
45+ message : `The extension '${ utils . extensionId } ' is already registered.`
46+ } ) ;
47+ } finally {
48+ powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ;
49+ }
50+ } ) ;
4051
41- it ( "It can't register the same extension twice" , async function ( ) {
42- const sessionId : string = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
43- try {
52+ it ( "Throws when unregistering an extension that isn't registered" , async function ( ) {
4453 assert . throws (
45- ( ) => powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ,
54+ ( ) => powerShellExtensionClient . unregisterExternalExtension ( "not-real" ) ,
4655 {
47- message : `The extension ' ${ utils . extensionId } ' is already registered. `
56+ message : `No extension registered with session UUID: not-real `
4857 } ) ;
49- } finally {
50- powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ;
51- }
52- } ) ;
53-
54- it ( "It can't unregister an extension that isn't registered" , async function ( ) {
55- assert . throws (
56- ( ) => powerShellExtensionClient . unregisterExternalExtension ( "not-real" ) ,
57- {
58- message : `No extension registered with session UUID: not-real`
59- } ) ;
6058 } ) ;
61- } ) ;
62-
63- describe ( "ExternalApi feature - Other APIs" , ( ) => {
64- let sessionId : string ;
65- let powerShellExtensionClient : IPowerShellExtensionClient ;
66-
67- before ( async function ( ) {
68- const powershellExtension = await utils . ensureExtensionIsActivated ( ) ;
69- powerShellExtensionClient = powershellExtension ! . exports as IPowerShellExtensionClient ;
7059 } ) ;
7160
72- beforeEach ( function ( ) {
73- sessionId = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
74- } ) ;
61+ describe ( "PowerShell version details" , ( ) => {
62+ let sessionId : string ;
63+ let powerShellExtensionClient : IPowerShellExtensionClient ;
7564
76- afterEach ( function ( ) {
77- powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ;
78- } ) ;
65+ before ( async function ( ) {
66+ const powershellExtension = await utils . ensureExtensionIsActivated ( ) ;
67+ powerShellExtensionClient = powershellExtension ! . exports as IPowerShellExtensionClient ;
68+ sessionId = powerShellExtensionClient . registerExternalExtension ( utils . extensionId ) ;
69+ } ) ;
7970
80- it ( "It can get PowerShell version details" , async function ( ) {
81- const versionDetails : IExternalPowerShellDetails = await powerShellExtensionClient . getPowerShellVersionDetails ( sessionId ) ;
71+ after ( function ( ) { powerShellExtensionClient . unregisterExternalExtension ( sessionId ) ; } ) ;
8272
83- assert . notStrictEqual ( versionDetails . architecture , "" ) ;
84- assert . notStrictEqual ( versionDetails . architecture , null ) ;
73+ it ( "Gets non-empty version details from the PowerShell Editor Services" , async function ( ) {
74+ const versionDetails : IExternalPowerShellDetails = await powerShellExtensionClient . getPowerShellVersionDetails ( sessionId ) ;
8575
86- assert . notStrictEqual ( versionDetails . displayName , "" ) ;
87- assert . notStrictEqual ( versionDetails . displayName , null ) ;
76+ assert . notStrictEqual ( versionDetails . architecture , "" ) ;
77+ assert . notStrictEqual ( versionDetails . architecture , null ) ;
8878
89- assert . notStrictEqual ( versionDetails . exePath , "" ) ;
90- assert . notStrictEqual ( versionDetails . exePath , null ) ;
79+ assert . notStrictEqual ( versionDetails . displayName , "" ) ;
80+ assert . notStrictEqual ( versionDetails . displayName , null ) ;
9181
92- assert . notStrictEqual ( versionDetails . version , "" ) ;
93- assert . notStrictEqual ( versionDetails . version , null ) ;
82+ assert . notStrictEqual ( versionDetails . exePath , "" ) ;
83+ assert . notStrictEqual ( versionDetails . exePath , null ) ;
9484
95- // Start up can take some time...so set the timeout to 30 seconds.
85+ assert . notStrictEqual ( versionDetails . version , "" ) ;
86+ assert . notStrictEqual ( versionDetails . version , null ) ;
87+ } ) ;
9688 } ) ;
9789} ) ;
0 commit comments