@@ -96,7 +96,7 @@ beforeEach(async () => {
9696describe ( 'invalid user catalog' , ( ) => {
9797 beforeEach ( async ( ) => {
9898 vi . mocked ( promises . readFile ) . mockResolvedValue ( 'invalid json' ) ;
99- catalogManager . init ( ) ;
99+ await catalogManager . init ( ) ;
100100 } ) ;
101101
102102 test ( 'expect correct model is returned with valid id' , ( ) => {
@@ -116,7 +116,7 @@ describe('invalid user catalog', () => {
116116
117117test ( 'expect correct model is returned from default catalog with valid id when no user catalog exists' , async ( ) => {
118118 vi . mocked ( existsSync ) . mockReturnValue ( false ) ;
119- catalogManager . init ( ) ;
119+ await catalogManager . init ( ) ;
120120 await vi . waitUntil ( ( ) => catalogManager . getRecipes ( ) . length > 0 ) ;
121121
122122 const model = catalogManager . getModelById ( 'llama-2-7b-chat.Q5_K_S' ) ;
@@ -132,7 +132,7 @@ test('expect correct model is returned with valid id when the user catalog is va
132132 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
133133 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
134134
135- catalogManager . init ( ) ;
135+ await catalogManager . init ( ) ;
136136 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
137137
138138 const model = catalogManager . getModelById ( 'model1' ) ;
@@ -146,7 +146,7 @@ test('expect to call writeFile in addLocalModelsToCatalog with catalog updated',
146146 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
147147 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
148148
149- catalogManager . init ( ) ;
149+ await catalogManager . init ( ) ;
150150 await vi . waitUntil ( ( ) => catalogManager . getRecipes ( ) . length > 0 ) ;
151151
152152 const mtimeDate = new Date ( '2024-04-03T09:51:15.766Z' ) ;
@@ -174,7 +174,7 @@ test('expect to call writeFile in removeLocalModelFromCatalog with catalog updat
174174 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
175175 vi . mocked ( path . resolve ) . mockReturnValue ( 'path' ) ;
176176
177- catalogManager . init ( ) ;
177+ await catalogManager . init ( ) ;
178178 await vi . waitUntil ( ( ) => catalogManager . getRecipes ( ) . length > 0 ) ;
179179
180180 vi . mocked ( promises . writeFile ) . mockResolvedValue ( ) ;
@@ -196,7 +196,7 @@ test('catalog should be the combination of user catalog and default catalog', as
196196 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
197197 vi . mocked ( path . resolve ) . mockReturnValue ( 'path' ) ;
198198
199- catalogManager . init ( ) ;
199+ await catalogManager . init ( ) ;
200200 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . length > userContent . models . length ) ;
201201
202202 const mtimeDate = new Date ( '2024-04-03T09:51:15.766Z' ) ;
@@ -238,7 +238,7 @@ test('catalog should use user items in favour of default', async () => {
238238
239239 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( overwriteFullCatalog ) ) ;
240240
241- catalogManager . init ( ) ;
241+ await catalogManager . init ( ) ;
242242 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . length > 0 ) ;
243243
244244 const mtimeDate = new Date ( '2024-04-03T09:51:15.766Z' ) ;
@@ -330,7 +330,7 @@ test('filter recipes by language', async () => {
330330 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
331331 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
332332
333- catalogManager . init ( ) ;
333+ await catalogManager . init ( ) ;
334334 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
335335 const result1 = catalogManager . filterRecipes ( {
336336 languages : [ 'lang1' ] ,
@@ -375,7 +375,7 @@ test('filter recipes by tool', async () => {
375375 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
376376 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
377377
378- catalogManager . init ( ) ;
378+ await catalogManager . init ( ) ;
379379 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
380380
381381 const result1 = catalogManager . filterRecipes ( {
@@ -445,7 +445,7 @@ test('filter recipes by framework', async () => {
445445 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
446446 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
447447
448- catalogManager . init ( ) ;
448+ await catalogManager . init ( ) ;
449449 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
450450
451451 const result1 = catalogManager . filterRecipes ( {
@@ -519,7 +519,7 @@ test('filter recipes by language and framework', async () => {
519519 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
520520 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
521521
522- catalogManager . init ( ) ;
522+ await catalogManager . init ( ) ;
523523 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
524524
525525 const result1 = catalogManager . filterRecipes ( {
@@ -546,7 +546,7 @@ test('filter recipes by language, tool and framework', async () => {
546546 vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
547547 vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
548548
549- catalogManager . init ( ) ;
549+ await catalogManager . init ( ) ;
550550 await vi . waitUntil ( ( ) => catalogManager . getModels ( ) . some ( model => model . id === 'model1' ) ) ;
551551
552552 const result1 = catalogManager . filterRecipes ( {
@@ -567,3 +567,15 @@ test('filter recipes by language, tool and framework', async () => {
567567 tools : [ { name : 'tool1' , count : 1 } ] ,
568568 } ) ;
569569} ) ;
570+
571+ test ( 'models are loaded as soon as init is finished when no user catalog' , async ( ) => {
572+ await catalogManager . init ( ) ;
573+ expect ( catalogManager . getModels ( ) ) . toHaveLength ( 3 ) ;
574+ } ) ;
575+
576+ test ( 'models are loaded as soon as init is finished when user catalog exists' , async ( ) => {
577+ vi . mocked ( promises . readFile ) . mockResolvedValue ( JSON . stringify ( userContent ) ) ;
578+ vi . mocked ( existsSync ) . mockReturnValue ( true ) ;
579+ await catalogManager . init ( ) ;
580+ expect ( catalogManager . getModels ( ) ) . toHaveLength ( 5 ) ;
581+ } ) ;
0 commit comments