11import axios from "axios"
2+ import { vi , describe , it , expect , beforeEach } from "vitest"
23import { LMStudioClient , LLMInfo } from "@lmstudio/sdk" // LLMInfo is a type
34import { getLMStudioModels , parseLMStudioModel } from "../lmstudio"
45import { ModelInfo , lMStudioDefaultModelInfo } from "@roo-code/types" // ModelInfo is a type
56
67// Mock axios
7- jest . mock ( "axios" )
8- const mockedAxios = axios as jest . Mocked < typeof axios >
8+ vi . mock ( "axios" )
9+ const mockedAxios = axios as any
910
1011// Mock @lmstudio /sdk
11- const mockListDownloadedModels = jest . fn ( )
12- jest . mock ( "@lmstudio/sdk" , ( ) => {
13- const originalModule = jest . requireActual ( "@lmstudio/sdk" )
12+ const mockListDownloadedModels = vi . fn ( )
13+ vi . mock ( "@lmstudio/sdk" , ( ) => {
1414 return {
15- ...originalModule ,
16- LMStudioClient : jest . fn ( ) . mockImplementation ( ( ) => ( {
15+ LMStudioClient : vi . fn ( ) . mockImplementation ( ( ) => ( {
1716 system : {
1817 listDownloadedModels : mockListDownloadedModels ,
1918 } ,
2019 } ) ) ,
2120 }
2221} )
23- const MockedLMStudioClientConstructor = LMStudioClient as jest . MockedClass < typeof LMStudioClient >
22+ const MockedLMStudioClientConstructor = LMStudioClient as any
2423
2524describe ( "LMStudio Fetcher" , ( ) => {
2625 beforeEach ( ( ) => {
27- jest . clearAllMocks ( )
26+ vi . clearAllMocks ( )
2827 MockedLMStudioClientConstructor . mockClear ( )
2928 } )
3029
@@ -133,7 +132,7 @@ describe("LMStudio Fetcher", () => {
133132 } )
134133
135134 it ( "should return an empty object and log error if axios.get fails with a generic error" , async ( ) => {
136- const consoleErrorSpy = jest . spyOn ( console , "error" ) . mockImplementation ( ( ) => { } )
135+ const consoleErrorSpy = vi . spyOn ( console , "error" ) . mockImplementation ( ( ) => { } )
137136 const networkError = new Error ( "Network connection failed" )
138137 mockedAxios . get . mockRejectedValueOnce ( networkError )
139138
@@ -151,7 +150,7 @@ describe("LMStudio Fetcher", () => {
151150 } )
152151
153152 it ( "should return an empty object and log info if axios.get fails with ECONNREFUSED" , async ( ) => {
154- const consoleInfoSpy = jest . spyOn ( console , "warn" ) . mockImplementation ( ( ) => { } )
153+ const consoleInfoSpy = vi . spyOn ( console , "warn" ) . mockImplementation ( ( ) => { } )
155154 const econnrefusedError = new Error ( "Connection refused" )
156155 ; ( econnrefusedError as any ) . code = "ECONNREFUSED"
157156 mockedAxios . get . mockRejectedValueOnce ( econnrefusedError )
@@ -168,7 +167,7 @@ describe("LMStudio Fetcher", () => {
168167 } )
169168
170169 it ( "should return an empty object and log error if listDownloadedModels fails" , async ( ) => {
171- const consoleErrorSpy = jest . spyOn ( console , "error" ) . mockImplementation ( ( ) => { } )
170+ const consoleErrorSpy = vi . spyOn ( console , "error" ) . mockImplementation ( ( ) => { } )
172171 const listError = new Error ( "LMStudio SDK internal error" )
173172
174173 mockedAxios . get . mockResolvedValueOnce ( { data : { } } )
0 commit comments