@@ -7,6 +7,7 @@ import type { EnvironmentManagerCapability, PackageManagerCapability } from '../
77import { EnvironmentCapability , PackageCapability } from '../capabilities' ;
88import { getLegacyEnvironmentManagerCapability , getLegacyPackageManagerCapability } from '../legacyCapabilities' ;
99import type { EnvironmentManager , PackageManager } from '../types' ;
10+ import { allSupportedEnvironmentCapabilities , allSupportedPackageCapabilities } from './capabilityFixtures' ;
1011
1112function unexpectedOperation ( ) : never {
1213 throw new Error ( 'Legacy capability inference must not invoke operations' ) ;
@@ -16,6 +17,39 @@ const legacySupported = { supported: true, isLegacy: true };
1617const legacyUnsupported = { supported : false , reason : l10n . t ( 'Capability not implemented' ) , isLegacy : true } ;
1718
1819suite ( 'Legacy manager capabilities' , ( ) => {
20+ test ( 'package capability advertisements disable legacy inference even when methods are present' , async ( ) => {
21+ const manager : PackageManager = {
22+ name : 'advertised' ,
23+ manage : unexpectedOperation ,
24+ refresh : unexpectedOperation ,
25+ getPackages : unexpectedOperation ,
26+ capabilities : allSupportedPackageCapabilities ,
27+ } ;
28+
29+ assert . deepStrictEqual ( await getLegacyPackageManagerCapability ( manager , PackageCapability . Install ) , {
30+ supported : false ,
31+ reason : l10n . t ( 'Capability not implemented' ) ,
32+ } ) ;
33+ } ) ;
34+
35+ test ( 'environment capability advertisements disable legacy inference even when methods are present' , async ( ) => {
36+ const manager : EnvironmentManager = {
37+ name : 'advertised' ,
38+ preferredPackageManagerId : 'advertised:packages' ,
39+ refresh : unexpectedOperation ,
40+ getEnvironments : unexpectedOperation ,
41+ get : unexpectedOperation ,
42+ set : unexpectedOperation ,
43+ resolve : unexpectedOperation ,
44+ capabilities : allSupportedEnvironmentCapabilities ,
45+ } ;
46+
47+ assert . deepStrictEqual ( await getLegacyEnvironmentManagerCapability ( manager , EnvironmentCapability . List ) , {
48+ supported : false ,
49+ reason : l10n . t ( 'Capability not implemented' ) ,
50+ } ) ;
51+ } ) ;
52+
1953 test ( 'package capabilities require their callable methods without executing them' , async ( ) => {
2054 const manager : PackageManager = {
2155 name : 'legacy' ,
0 commit comments