@@ -28,8 +28,10 @@ describe('ResourceLoaderService', () => {
2828 let sheetAdded$ : Subject < unknown > ;
2929 let docAdded$ : Subject < unknown > ;
3030 let slideAdded$ : Subject < unknown > ;
31+ let baseAdded$ : Subject < unknown > ;
3132 let sheetDisposed$ : Subject < unknown > ;
3233 let docDisposed$ : Subject < unknown > ;
34+ let baseDisposed$ : Subject < unknown > ;
3335 let slideDisposed$ : Subject < unknown > ;
3436 let resourceManagerService : {
3537 getAllResourceHooks : ReturnType < typeof vi . fn > ;
@@ -50,8 +52,10 @@ describe('ResourceLoaderService', () => {
5052 sheetAdded$ = new Subject ( ) ;
5153 docAdded$ = new Subject ( ) ;
5254 slideAdded$ = new Subject ( ) ;
55+ baseAdded$ = new Subject ( ) ;
5356 sheetDisposed$ = new Subject ( ) ;
5457 docDisposed$ = new Subject ( ) ;
58+ baseDisposed$ = new Subject ( ) ;
5559 slideDisposed$ = new Subject ( ) ;
5660 resourceManagerService = {
5761 getAllResourceHooks : vi . fn ( ( ) => [ ] ) ,
@@ -65,11 +69,13 @@ describe('ResourceLoaderService', () => {
6569 getTypeOfUnitAdded$ : vi . fn ( ( type ) => {
6670 if ( type === UniverInstanceType . UNIVER_SHEET ) return sheetAdded$ ;
6771 if ( type === UniverInstanceType . UNIVER_DOC ) return docAdded$ ;
72+ if ( type === UniverInstanceType . UNIVER_BASE ) return baseAdded$ ;
6873 return slideAdded$ ;
6974 } ) ,
7075 getTypeOfUnitDisposed$ : vi . fn ( ( type ) => {
7176 if ( type === UniverInstanceType . UNIVER_SHEET ) return sheetDisposed$ ;
7277 if ( type === UniverInstanceType . UNIVER_DOC ) return docDisposed$ ;
78+ if ( type === UniverInstanceType . UNIVER_BASE ) return baseDisposed$ ;
7379 return slideDisposed$ ;
7480 } ) ,
7581 getUnit : vi . fn ( ) ,
@@ -109,6 +115,19 @@ describe('ResourceLoaderService', () => {
109115 expect ( resourceManagerService . unloadResources ) . toHaveBeenCalledWith ( 'book-1' , UniverInstanceType . UNIVER_SHEET ) ;
110116 } ) ;
111117
118+ it ( 'loads resources when a base unit is added and unloads them when disposed' , ( ) => {
119+ const base = {
120+ getUnitId : ( ) => 'base-1' ,
121+ getSnapshot : ( ) => ( { resources : [ { name : 'base-plugin' , data : '{}' } ] } ) ,
122+ } ;
123+
124+ baseAdded$ . next ( { unit : base } ) ;
125+ baseDisposed$ . next ( base ) ;
126+
127+ expect ( resourceManagerService . loadResources ) . toHaveBeenCalledWith ( 'base-1' , [ { name : 'base-plugin' , data : '{}' } ] ) ;
128+ expect ( resourceManagerService . unloadResources ) . toHaveBeenCalledWith ( 'base-1' , UniverInstanceType . UNIVER_BASE ) ;
129+ } ) ;
130+
112131 it ( 'saves a unit snapshot with current plugin resources' , ( ) => {
113132 univerInstanceService . getUnit . mockReturnValue ( {
114133 type : UniverInstanceType . UNIVER_SHEET ,
0 commit comments