Dinh Long Nguyen e1c8d98bf2
Backend Architecture Refactoring (#6094) (#6162)
* 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
2025-08-15 08:59:01 +07:00

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(),
}))