@@ -15,8 +15,7 @@ import {
1515 loadExtension ,
1616} from '../extension.js' ;
1717import { checkForAllExtensionUpdates , updateExtension } from './update.js' ;
18- import { checkForExtensionUpdate } from './github.js' ;
19- import { GEMINI_DIR , type GeminiCLIExtension } from '@google/gemini-cli-core' ;
18+ import { GEMINI_DIR } from '@google/gemini-cli-core' ;
2019import { isWorkspaceTrusted } from '../trustedFolders.js' ;
2120import { ExtensionUpdateState } from '../../ui/state/extensions.js' ;
2221import { createExtension } from '../../test-utils/createExtension.js' ;
@@ -130,7 +129,12 @@ describe('update tests', () => {
130129 } ) ;
131130 mockGit . getRemotes . mockResolvedValue ( [ { name : 'origin' } ] ) ;
132131 const extension = annotateActiveExtensions (
133- [ loadExtension ( targetExtDir ) ! ] ,
132+ [
133+ loadExtension ( {
134+ extensionDir : targetExtDir ,
135+ workspaceDir : tempWorkspaceDir ,
136+ } ) ! ,
137+ ] ,
134138 [ ] ,
135139 process . cwd ( ) ,
136140 ) [ 0 ] ;
@@ -409,150 +413,4 @@ describe('update tests', () => {
409413 expect ( result ) . toBe ( ExtensionUpdateState . ERROR ) ;
410414 } ) ;
411415 } ) ;
412-
413- describe ( 'checkForExtensionUpdate' , ( ) => {
414- it ( 'should return UpdateAvailable for a git extension with updates' , async ( ) => {
415- const extensionDir = createExtension ( {
416- extensionsDir : userExtensionsDir ,
417- name : 'test-extension' ,
418- version : '1.0.0' ,
419- installMetadata : {
420- source : 'https://some.git/repo' ,
421- type : 'git' ,
422- } ,
423- } ) ;
424- const extension = annotateActiveExtensions (
425- [
426- loadExtension ( {
427- extensionDir,
428- workspaceDir : tempWorkspaceDir ,
429- } ) ! ,
430- ] ,
431- [ ] ,
432- process . cwd ( ) ,
433- ) [ 0 ] ;
434-
435- mockGit . getRemotes . mockResolvedValue ( [
436- { name : 'origin' , refs : { fetch : 'https://some.git/repo' } } ,
437- ] ) ;
438- mockGit . listRemote . mockResolvedValue ( 'remoteHash HEAD' ) ;
439- mockGit . revparse . mockResolvedValue ( 'localHash' ) ;
440-
441- let state : ExtensionUpdateState | undefined = undefined ;
442- await checkForExtensionUpdate (
443- extension ,
444- ( newState ) => ( state = newState ) ,
445- ) ;
446- expect ( state ) . toBe ( ExtensionUpdateState . UPDATE_AVAILABLE ) ;
447- } ) ;
448-
449- it ( 'should return UpToDate for a git extension with no updates' , async ( ) => {
450- const extensionDir = createExtension ( {
451- extensionsDir : userExtensionsDir ,
452- name : 'test-extension' ,
453- version : '1.0.0' ,
454- installMetadata : {
455- source : 'https://some.git/repo' ,
456- type : 'git' ,
457- } ,
458- } ) ;
459- const extension = annotateActiveExtensions (
460- [
461- loadExtension ( {
462- extensionDir,
463- workspaceDir : tempWorkspaceDir ,
464- } ) ! ,
465- ] ,
466- [ ] ,
467- process . cwd ( ) ,
468- ) [ 0 ] ;
469-
470- mockGit . getRemotes . mockResolvedValue ( [
471- { name : 'origin' , refs : { fetch : 'https://some.git/repo' } } ,
472- ] ) ;
473- mockGit . listRemote . mockResolvedValue ( 'sameHash HEAD' ) ;
474- mockGit . revparse . mockResolvedValue ( 'sameHash' ) ;
475-
476- let state : ExtensionUpdateState | undefined = undefined ;
477- await checkForExtensionUpdate (
478- extension ,
479- ( newState ) => ( state = newState ) ,
480- ) ;
481- expect ( state ) . toBe ( ExtensionUpdateState . UP_TO_DATE ) ;
482- } ) ;
483-
484- it ( 'should return NotUpdatable for a non-git extension' , async ( ) => {
485- const extensionDir = createExtension ( {
486- extensionsDir : userExtensionsDir ,
487- name : 'local-extension' ,
488- version : '1.0.0' ,
489- } ) ;
490- const extension = annotateActiveExtensions (
491- [
492- loadExtension ( {
493- extensionDir,
494- workspaceDir : tempWorkspaceDir ,
495- } ) ! ,
496- ] ,
497- [ ] ,
498- process . cwd ( ) ,
499- ) [ 0 ] ;
500-
501- let state : ExtensionUpdateState | undefined = undefined ;
502- await checkForExtensionUpdate (
503- extension ,
504- ( newState ) => ( state = newState ) ,
505- ) ;
506- expect ( state ) . toBe ( ExtensionUpdateState . NOT_UPDATABLE ) ;
507- } ) ;
508-
509- it ( 'should return Error when git check fails' , async ( ) => {
510- const extensionDir = createExtension ( {
511- extensionsDir : userExtensionsDir ,
512- name : 'error-extension' ,
513- version : '1.0.0' ,
514- installMetadata : {
515- source : 'https://some.git/repo' ,
516- type : 'git' ,
517- } ,
518- } ) ;
519- const extension = annotateActiveExtensions (
520- [
521- loadExtension ( {
522- extensionDir,
523- workspaceDir : tempWorkspaceDir ,
524- } ) ! ,
525- ] ,
526- [ ] ,
527- process . cwd ( ) ,
528- ) [ 0 ] ;
529-
530- mockGit . getRemotes . mockRejectedValue ( new Error ( 'Git error' ) ) ;
531-
532- let state : ExtensionUpdateState | undefined = undefined ;
533- await checkForExtensionUpdate (
534- extension ,
535- ( newState ) => ( state = newState ) ,
536- ) ;
537- expect ( state ) . toBe ( ExtensionUpdateState . ERROR ) ;
538- } ) ;
539-
540- it ( 'should set state to ERROR when no git remotes are found' , async ( ) => {
541- const extension = {
542- name : 'test-extension' ,
543- type : 'git' ,
544- } ;
545- const setExtensionUpdateState = vi . fn ( ) ;
546- mockGit . getRemotes . mockResolvedValue ( [ ] ) ;
547-
548- await checkForExtensionUpdate (
549- extension as GeminiCLIExtension ,
550- setExtensionUpdateState ,
551- ) ;
552-
553- expect ( setExtensionUpdateState ) . toHaveBeenCalledWith (
554- ExtensionUpdateState . ERROR ,
555- ) ;
556- } ) ;
557- } ) ;
558416} ) ;
0 commit comments