@@ -19,64 +19,67 @@ vi.mock('electron', () => ({
19
19
on : vi . fn ( ) ,
20
20
} ,
21
21
app : {
22
- getPath : vi . fn ( ) . mockReturnValue ( 'valid/path' ) ,
22
+ getPath : vi . fn ( ( ) => 'valid/path' ) ,
23
23
} ,
24
24
} ) ) ;
25
25
26
26
vi . mock ( 'node:fs/promises' , ( ) => ( {
27
27
default : {
28
28
access : vi . fn ( ) ,
29
- readFile : vi . fn ( ) . mockResolvedValue ( '{}' ) ,
29
+ readFile : vi . fn ( ( ) => Promise . resolve ( '{}' ) ) ,
30
30
} ,
31
31
access : vi . fn ( ) ,
32
- readFile : vi . fn ( ) . mockResolvedValue ( '{}' ) ,
32
+ readFile : vi . fn ( ( ) => Promise . resolve ( '{}' ) ) ,
33
33
} ) ) ;
34
34
35
- vi . mock ( '@/store/desktopConfig' , ( ) => ( {
36
- useDesktopConfig : vi . fn ( ) . mockReturnValue ( {
37
- get : vi . fn ( ) . mockImplementation ( ( key : string ) => {
38
- if ( key === 'installState' ) return 'installed' ;
39
- if ( key === 'basePath' ) return 'valid/base' ;
40
- } ) ,
41
- set : vi . fn ( ) . mockImplementation ( ( key : string , value : string ) => {
42
- if ( key !== 'basePath' ) throw new Error ( `Unexpected key: ${ key } ` ) ;
43
- if ( ! value ) throw new Error ( `Unexpected value: [${ value } ]` ) ;
44
- } ) ,
35
+ const config = {
36
+ get : vi . fn ( ( key : string ) => {
37
+ if ( key === 'installState' ) return 'installed' ;
38
+ if ( key === 'basePath' ) return 'valid/base' ;
39
+ } ) ,
40
+ set : vi . fn ( ( key : string , value : string ) => {
41
+ if ( key !== 'basePath' ) throw new Error ( `Unexpected key: ${ key } ` ) ;
42
+ if ( ! value ) throw new Error ( `Unexpected value: [${ value } ]` ) ;
45
43
} ) ,
44
+ } ;
45
+ vi . mock ( '@/store/desktopConfig' , ( ) => ( {
46
+ useDesktopConfig : vi . fn ( ( ) => config ) ,
46
47
} ) ) ;
47
48
48
49
vi . mock ( '@/utils' , async ( ) => {
49
50
const actual = await vi . importActual < typeof utils > ( '@/utils' ) ;
50
51
return {
51
52
...actual ,
52
- pathAccessible : vi . fn ( ) . mockImplementation ( ( path : string ) => {
53
+ pathAccessible : vi . fn ( ( path : string ) => {
53
54
const isValid = path . startsWith ( 'valid/' ) || path . endsWith ( `\\System32\\vcruntime140.dll` ) ;
54
55
return Promise . resolve ( isValid ) ;
55
56
} ) ,
56
- canExecute : vi . fn ( ) . mockResolvedValue ( true ) ,
57
- canExecuteShellCommand : vi . fn ( ) . mockResolvedValue ( true ) ,
57
+ canExecute : vi . fn ( ( ) => Promise . resolve ( true ) ) ,
58
+ canExecuteShellCommand : vi . fn ( ( ) => Promise . resolve ( true ) ) ,
58
59
} ;
59
60
} ) ;
60
61
61
62
vi . mock ( '@/config/comfyServerConfig' , ( ) => {
62
63
return {
63
64
ComfyServerConfig : {
64
65
configPath : 'valid/extra_models_config.yaml' ,
65
- exists : vi . fn ( ) . mockReturnValue ( true ) ,
66
- readBasePathFromConfig : vi . fn ( ) . mockResolvedValue ( {
67
- status : 'success' ,
68
- path : 'valid/base' ,
69
- } ) ,
66
+ exists : vi . fn ( ( ) => Promise . resolve ( true ) ) ,
67
+ readBasePathFromConfig : vi . fn ( ( ) =>
68
+ Promise . resolve ( {
69
+ status : 'success' ,
70
+ path : 'valid/base' ,
71
+ } )
72
+ ) ,
70
73
} ,
71
74
} ;
72
75
} ) ;
73
76
74
77
// Mock VirtualEnvironment with basic implementation
75
78
vi . mock ( '@/virtualEnvironment' , ( ) => {
76
79
return {
77
- VirtualEnvironment : vi . fn ( ) . mockImplementation ( ( ) => ( {
78
- exists : vi . fn ( ) . mockResolvedValue ( true ) ,
79
- hasRequirements : vi . fn ( ) . mockResolvedValue ( true ) ,
80
+ VirtualEnvironment : vi . fn ( ( ) => ( {
81
+ exists : vi . fn ( ( ) => Promise . resolve ( true ) ) ,
82
+ hasRequirements : vi . fn ( ( ) => Promise . resolve ( true ) ) ,
80
83
pythonInterpreterPath : 'valid/python' ,
81
84
uvPath : 'valid/uv' ,
82
85
venvPath : 'valid/venv' ,
@@ -88,16 +91,16 @@ vi.mock('@/virtualEnvironment', () => {
88
91
89
92
// Mock Telemetry
90
93
vi . mock ( '@/services/telemetry' , ( ) => ( {
91
- getTelemetry : vi . fn ( ) . mockReturnValue ( {
94
+ getTelemetry : vi . fn ( ( ) => ( {
92
95
track : vi . fn ( ) ,
93
- } ) ,
96
+ } ) ) ,
94
97
trackEvent : ( ) => ( target : any , propertyKey : string , descriptor : PropertyDescriptor ) => descriptor ,
95
98
} ) ) ;
96
99
97
100
const createMockAppWindow = ( ) => {
98
101
const mock = {
99
102
send : vi . fn ( ) ,
100
- loadPage : vi . fn ( ) . mockResolvedValue ( null ) ,
103
+ loadPage : vi . fn ( ( ) => Promise . resolve ( null ) ) ,
101
104
showOpenDialog : vi . fn ( ) ,
102
105
maximize : vi . fn ( ) ,
103
106
} ;
@@ -147,10 +150,9 @@ describe('InstallationManager', () => {
147
150
148
151
describe ( 'ensureInstalled' , ( ) => {
149
152
beforeEach ( ( ) => {
150
- // eslint-disable-next-line @typescript-eslint/require-await
151
- vi . spyOn ( ComfyInstallation , 'fromConfig' ) . mockImplementation ( async ( ) => {
152
- return new ComfyInstallation ( 'installed' , 'valid/base' , createMockTelemetry ( ) ) ;
153
- } ) ;
153
+ vi . spyOn ( ComfyInstallation , 'fromConfig' ) . mockImplementation ( ( ) =>
154
+ Promise . resolve ( new ComfyInstallation ( 'installed' , 'valid/base' , createMockTelemetry ( ) ) )
155
+ ) ;
154
156
} ) ;
155
157
156
158
it ( 'returns existing valid installation' , async ( ) => {
@@ -166,6 +168,9 @@ describe('InstallationManager', () => {
166
168
{
167
169
scenario : 'detects invalid base path' ,
168
170
mockSetup : ( ) => {
171
+ vi . spyOn ( ComfyInstallation , 'fromConfig' ) . mockImplementation ( ( ) =>
172
+ Promise . resolve ( new ComfyInstallation ( 'installed' , 'invalid/base' , createMockTelemetry ( ) ) )
173
+ ) ;
169
174
vi . mocked ( useDesktopConfig ( ) . get ) . mockImplementation ( ( key : string ) => {
170
175
if ( key === 'installState' ) return 'installed' ;
171
176
if ( key === 'basePath' ) return 'invalid/base' ;
0 commit comments