@@ -14,6 +14,13 @@ vi.mock('vue-i18n', () => ({
1414} ) )
1515
1616// Mock the useImageModelManager composable
17+ const mockLoadConfigs = vi . fn ( ) . mockResolvedValue ( undefined )
18+ const mockInitialize = vi . fn ( async ( ) => {
19+ await mockLoadConfigs ( )
20+ } )
21+ const mockUpdateConfig = vi . fn ( ) . mockResolvedValue ( undefined )
22+ const mockDeleteConfig = vi . fn ( ) . mockResolvedValue ( undefined )
23+
1724vi . mock ( '../../../src/composables/useImageModelManager' , ( ) => ( {
1825 useImageModelManager : ( ) => ( {
1926 providers : ref ( [
@@ -27,21 +34,33 @@ vi.mock('../../../src/composables/useImageModelManager', () => ({
2734 {
2835 id : 'gpt-image-1' ,
2936 name : 'GPT Image 1' ,
30- enabled : true
37+ enabled : true ,
38+ model : {
39+ id : 'gpt-image-1' ,
40+ capabilities : {
41+ text2image : true ,
42+ image2image : false
43+ }
44+ }
3145 }
3246 ] ) ,
3347 models : ref ( [
3448 {
3549 id : 'gpt-image-1' ,
3650 name : 'GPT Image 1' ,
37- enabled : true
51+ enabled : true ,
52+ capabilities : {
53+ text2image : true ,
54+ image2image : false
55+ }
3856 }
3957 ] ) ,
4058 isLoading : ref ( false ) ,
4159 error : ref ( null ) ,
42- addModel : vi . fn ( ) . mockResolvedValue ( undefined ) ,
43- updateModel : vi . fn ( ) . mockResolvedValue ( undefined ) ,
44- deleteModel : vi . fn ( ) . mockResolvedValue ( undefined ) ,
60+ initialize : mockInitialize ,
61+ loadConfigs : mockLoadConfigs ,
62+ updateConfig : mockUpdateConfig ,
63+ deleteConfig : mockDeleteConfig ,
4564 testConnection : vi . fn ( ) . mockResolvedValue ( { success : true } ) ,
4665 enableModel : vi . fn ( ) . mockResolvedValue ( undefined ) ,
4766 disableModel : vi . fn ( ) . mockResolvedValue ( undefined ) ,
@@ -55,14 +74,36 @@ describe('ImageModelManager', () => {
5574
5675 beforeEach ( ( ) => {
5776 vi . clearAllMocks ( )
77+ mockInitialize . mockClear ( )
78+ mockLoadConfigs . mockClear ( )
79+ mockUpdateConfig . mockClear ( )
80+ mockDeleteConfig . mockClear ( )
5881 } )
5982
83+ const mockImageRegistry = {
84+ getAvailableProviders : vi . fn ( ) . mockReturnValue ( [
85+ {
86+ value : 'openai' ,
87+ label : 'OpenAI' ,
88+ aliases : [ ]
89+ }
90+ ] )
91+ }
92+
93+ const mockImageService = {
94+ testConnection : vi . fn ( ) . mockResolvedValue ( { success : true } )
95+ }
96+
6097 const createWrapper = ( props = { } ) => {
6198 return mount ( ImageModelManager , {
6299 props : {
63100 ...props
64101 } ,
65102 global : {
103+ provide : {
104+ imageRegistry : mockImageRegistry ,
105+ imageService : mockImageService
106+ } ,
66107 stubs : {
67108 // Stub all NaiveUI components
68109 'n-card' : { template : '<div><slot name="header" /><slot /></div>' } ,
@@ -88,12 +129,14 @@ describe('ImageModelManager', () => {
88129 it ( '应该正确渲染组件' , ( ) => {
89130 wrapper = createWrapper ( )
90131 expect ( wrapper . vm ) . toBeDefined ( )
132+ expect ( mockInitialize ) . toHaveBeenCalled ( )
91133 } )
92134
93135 it ( '应该加载图像模型提供商' , ( ) => {
94136 wrapper = createWrapper ( )
95137 // 验证组件正常挂载即可,具体业务逻辑由 useImageModelManager 处理
96138 expect ( wrapper . vm ) . toBeDefined ( )
139+ expect ( mockLoadConfigs ) . toHaveBeenCalled ( )
97140 } )
98141 } )
99- } )
142+ } )
0 commit comments