* add llamacpp plugin * Refactor llamacpp plugin * add utils plugin * remove utils folder * add hardware implementation * add utils folder + move utils function * organize cargo files * refactor utils src * refactor util * apply fmt * fmt * Update gguf + reformat * add permission for gguf commands * fix cargo test windows * revert yarn lock * remove cargo.lock for hardware plugin * ignore cargo.lock file * Fix hardware invoke + refactor hardware + refactor tests, constants * use api wrapper in extension to invoke hardware call + api wrapper build integration * add newline at EOF (per Akarshan) * add vi mock for getSystemInfo
73 lines
1.4 KiB
TypeScript
73 lines
1.4 KiB
TypeScript
import { vi } from 'vitest'
|
|
|
|
// Mock localStorage
|
|
const localStorageMock = {
|
|
getItem: vi.fn(),
|
|
setItem: vi.fn(),
|
|
removeItem: vi.fn(),
|
|
clear: vi.fn(),
|
|
}
|
|
|
|
Object.defineProperty(globalThis, 'localStorage', {
|
|
value: localStorageMock,
|
|
writable: true,
|
|
})
|
|
|
|
// Mock the global window object for Tauri
|
|
Object.defineProperty(globalThis, 'window', {
|
|
value: {
|
|
localStorage: localStorageMock,
|
|
core: {
|
|
api: {
|
|
// getSystemInfo: vi.fn(),
|
|
},
|
|
extensionManager: {
|
|
getByName: vi.fn().mockReturnValue({
|
|
downloadFiles: vi.fn().mockResolvedValue(undefined),
|
|
cancelDownload: vi.fn().mockResolvedValue(undefined),
|
|
}),
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
vi.mock('@janhq/tauri-plugin-hardware-api', () => ({
|
|
getSystemInfo: vi.fn(),
|
|
}));
|
|
|
|
// Mock Tauri invoke function
|
|
vi.mock('@tauri-apps/api/core', () => ({
|
|
invoke: vi.fn(),
|
|
}))
|
|
|
|
// Mock Tauri path API
|
|
vi.mock('@tauri-apps/api/path', () => ({
|
|
basename: vi.fn(),
|
|
dirname: vi.fn(),
|
|
join: vi.fn(),
|
|
resolve: vi.fn(),
|
|
}))
|
|
|
|
// Mock @janhq/core
|
|
vi.mock('@janhq/core', () => ({
|
|
getJanDataFolderPath: vi.fn(),
|
|
fs: {
|
|
existsSync: vi.fn(),
|
|
readdirSync: vi.fn(),
|
|
fileStat: vi.fn(),
|
|
mkdir: vi.fn(),
|
|
rm: vi.fn(),
|
|
},
|
|
joinPath: vi.fn(),
|
|
modelInfo: {},
|
|
SessionInfo: {},
|
|
UnloadResult: {},
|
|
chatCompletion: {},
|
|
chatCompletionChunk: {},
|
|
ImportOptions: {},
|
|
chatCompletionRequest: {},
|
|
events: {
|
|
emit: vi.fn(),
|
|
},
|
|
AIEngine: vi.fn(),
|
|
})) |