File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -1032,6 +1032,16 @@ export function validateManifest(manifest: Manifest): Manifest {
1032
1032
}
1033
1033
} ) ;
1034
1034
1035
+ if ( manifest . extensionKind ) {
1036
+ const extensionKinds : ExtensionKind [ ] = Array . isArray ( manifest . extensionKind )
1037
+ ? manifest . extensionKind
1038
+ : [ manifest . extensionKind ] ;
1039
+ const validExtensionKinds : ExtensionKind [ ] = [ 'ui' , 'workspace' ] ;
1040
+ if ( extensionKinds . some ( extensionKind => ! validExtensionKinds . includes ( extensionKind ) ) ) {
1041
+ throw new Error ( `Manifest contains invalid value '${ extensionKind } ' in the 'extensionKind' property. Allowed values are 'ui', 'workspace'.` ) ;
1042
+ }
1043
+ }
1044
+
1035
1045
return manifest ;
1036
1046
}
1037
1047
Original file line number Diff line number Diff line change @@ -390,6 +390,21 @@ describe('validateManifest', () => {
390
390
validateManifest ( createManifest ( { activationEvents : [ 'any' ] , browser : 'browser.js' } ) ) ;
391
391
validateManifest ( createManifest ( { activationEvents : [ 'any' ] , main : 'main.js' , browser : 'browser.js' } ) ) ;
392
392
} ) ;
393
+
394
+ it ( 'should validate extensionKind' , ( ) => {
395
+ assert . throws ( ( ) => validateManifest ( createManifest ( { extensionKind : [ 'web' ] } ) ) ) ;
396
+ assert . throws ( ( ) => validateManifest ( createManifest ( { extensionKind : 'web' } ) ) ) ;
397
+ assert . throws ( ( ) => validateManifest ( createManifest ( { extensionKind : [ 'workspace' , 'ui' , 'web' ] } ) ) ) ;
398
+ assert . throws ( ( ) => validateManifest ( createManifest ( { extensionKind : [ 'workspace' , 'web' ] } ) ) ) ;
399
+ assert . throws ( ( ) => validateManifest ( createManifest ( { extensionKind : [ 'ui' , 'web' ] } ) ) ) ;
400
+ assert . throws ( ( ) => validateManifest ( createManifest ( < any > { extensionKind : [ 'any' ] } ) ) ) ;
401
+ validateManifest ( createManifest ( { extensionKind : 'ui' } ) ) ;
402
+ validateManifest ( createManifest ( { extensionKind : [ 'ui' ] } ) ) ;
403
+ validateManifest ( createManifest ( { extensionKind : 'workspace' } ) ) ;
404
+ validateManifest ( createManifest ( { extensionKind : [ 'workspace' ] } ) ) ;
405
+ validateManifest ( createManifest ( { extensionKind : [ 'ui' , 'workspace' ] } ) ) ;
406
+ validateManifest ( createManifest ( { extensionKind : [ 'workspace' , 'ui' ] } ) ) ;
407
+ } ) ;
393
408
} ) ;
394
409
395
410
describe ( 'toVsixManifest' , ( ) => {
You can’t perform that action at this time.
0 commit comments