@@ -55,4 +55,36 @@ export async function run(): Promise<void> {
5555 const properties = configSchema . properties as Record < string , unknown > ;
5656 assert . ok ( properties [ "patchloom.path" ] , "should contribute patchloom.path setting" ) ;
5757 assert . ok ( properties [ "patchloom.showStatusBar" ] , "should contribute patchloom.showStatusBar setting" ) ;
58+
59+ // Activation events include onStartupFinished
60+ const activationEvents = packageJson . activationEvents as string [ ] ;
61+ assert . ok ( activationEvents . includes ( "onStartupFinished" ) ,
62+ "should activate on startup finished" ) ;
63+
64+ // All contributed commands have corresponding activation events
65+ for ( const cmd of EXPECTED_COMMANDS ) {
66+ assert . ok (
67+ activationEvents . includes ( "onStartupFinished" ) || activationEvents . includes ( `onCommand:${ cmd } ` ) ,
68+ `command ${ cmd } should be activatable`
69+ ) ;
70+ }
71+
72+ // Extension remains active throughout test lifecycle
73+ assert . ok ( extension . isActive , "extension should still be active after assertions" ) ;
74+
75+ // Configuration type validation
76+ const pathSchema = properties [ "patchloom.path" ] as Record < string , unknown > ;
77+ assert . equal ( pathSchema . type , "string" , "patchloom.path should be a string type" ) ;
78+ assert . equal ( pathSchema . default , "" , "patchloom.path default should be empty" ) ;
79+
80+ const statusBarSchema = properties [ "patchloom.showStatusBar" ] as Record < string , unknown > ;
81+ assert . equal ( statusBarSchema . type , "boolean" , "patchloom.showStatusBar should be boolean type" ) ;
82+ assert . equal ( statusBarSchema . default , true , "patchloom.showStatusBar default should be true" ) ;
83+
84+ // Extension has required license and repo metadata
85+ assert . equal ( packageJson . license , "MIT" ) ;
86+ assert . ok ( typeof ( packageJson . repository as Record < string , unknown > ) . url === "string" ,
87+ "should have a repository URL" ) ;
88+ assert . ok ( typeof packageJson . description === "string" && ( packageJson . description as string ) . length > 0 ,
89+ "should have a non-empty description" ) ;
5890}
0 commit comments