@@ -166,15 +166,15 @@ where
166166 }
167167
168168 match shell_extensions. get_extension_state ( ) . await ? {
169- state @ ( ExtensionState :: Enabled | ExtensionState :: Disabled ) => {
169+ state @ ( ExtensionState :: Enabled | ExtensionState :: Disabled | ExtensionState :: Initialized ) => {
170170 if let Some ( expected_version) = expected_version {
171171 let installed_version = shell_extensions. get_extension_version ( ) . await ?;
172172 if installed_version != expected_version {
173173 return Ok ( ExtensionInstallationStatus :: UnexpectedVersion { installed_version } ) ;
174174 }
175175 }
176176
177- if state == ExtensionState :: Disabled {
177+ if state == ExtensionState :: Disabled || state == ExtensionState :: Initialized {
178178 Ok ( ExtensionInstallationStatus :: NotEnabled )
179179 } else {
180180 Ok ( ExtensionInstallationStatus :: Enabled )
@@ -833,21 +833,28 @@ mod tests {
833833 async fn test_extension_installed_but_not_enabled ( ) {
834834 tracing_subscriber:: fmt:: try_init ( ) . ok ( ) ;
835835
836- let ctx = make_ctx ( ) . await ;
837- let shell_extensions = ShellExtensions :: new_fake ( Arc :: downgrade ( & ctx) ) ;
838- let expected_version = 2 ;
839- shell_extensions
840- . install_for_fake ( false , expected_version, Some ( ExtensionState :: Disabled ) )
841- . await
842- . unwrap ( ) ;
843-
844- // When
845- let status = get_extension_status ( & ctx, & shell_extensions, Some ( expected_version) )
846- . await
847- . unwrap ( ) ;
836+ for disabled_state in & [ ExtensionState :: Disabled , ExtensionState :: Initialized ] {
837+ let ctx = make_ctx ( ) . await ;
838+ let shell_extensions = ShellExtensions :: new_fake ( Arc :: downgrade ( & ctx) ) ;
839+ let expected_version = 2 ;
840+ shell_extensions
841+ . install_for_fake ( false , expected_version, Some ( * disabled_state) )
842+ . await
843+ . unwrap ( ) ;
848844
849- // Then
850- assert_eq ! ( status, ExtensionInstallationStatus :: NotEnabled ) ;
845+ // When
846+ let status = get_extension_status ( & ctx, & shell_extensions, Some ( expected_version) )
847+ . await
848+ . unwrap ( ) ;
849+
850+ // Then
851+ assert_eq ! (
852+ status,
853+ ExtensionInstallationStatus :: NotEnabled ,
854+ "Extension with state {:?} should return NotEnabled" ,
855+ * disabled_state
856+ ) ;
857+ }
851858 }
852859
853860 #[ tokio:: test]
0 commit comments