* feat: local engine management * chore: move remote engine into engine page instead extension page * chore: set default engine from extension * chore: update endpoint update engine * chore: update event onEngineUpdate * chore: filter out engine download * chore: update version env * chore: select default engine variant base on user device specs * chore: symlink engine variants * chore: rolldown.config in mjs format * chore: binary codesign * fix: download state in footer bar and variant status * chore: update yarn.lock * fix: rimraf failure * fix: setup-node@v3 for built-in cache * fix: cov pipeline * fix: build syntax * chore: fix build step * fix: create engines folder on launch * chore: update ui delete engine variant with modal confirmation * chore: fix linter * chore: add installing progress for Local Engine download * chore: wording --------- Co-authored-by: Louis <louis@jan.ai>
84 lines
1.6 KiB
TypeScript
84 lines
1.6 KiB
TypeScript
jest.mock('@janhq/core/node', () => ({
|
|
...jest.requireActual('@janhq/core/node'),
|
|
getJanDataFolderPath: () => '',
|
|
getSystemResourceInfo: () => {
|
|
return {
|
|
cpu: {
|
|
cores: 1,
|
|
logicalCores: 1,
|
|
threads: 1,
|
|
model: 'model',
|
|
speed: 1,
|
|
},
|
|
memory: {
|
|
total: 1,
|
|
free: 1,
|
|
},
|
|
gpu: {
|
|
model: 'model',
|
|
memory: 1,
|
|
cuda: {
|
|
version: 'version',
|
|
devices: 'devices',
|
|
},
|
|
vulkan: {
|
|
version: 'version',
|
|
devices: 'devices',
|
|
},
|
|
},
|
|
}
|
|
},
|
|
}))
|
|
|
|
jest.mock('fs', () => ({
|
|
default: {
|
|
readdirSync: () => [],
|
|
},
|
|
}))
|
|
|
|
jest.mock('child_process', () => ({
|
|
exec: () => {
|
|
return {
|
|
stdout: { on: jest.fn() },
|
|
stderr: { on: jest.fn() },
|
|
on: jest.fn(),
|
|
}
|
|
},
|
|
spawn: () => {
|
|
return {
|
|
stdout: { on: jest.fn() },
|
|
stderr: { on: jest.fn() },
|
|
on: jest.fn(),
|
|
pid: '111',
|
|
}
|
|
},
|
|
}))
|
|
|
|
import index from './index'
|
|
|
|
describe('dispose', () => {
|
|
it('should dispose a model successfully on Mac', async () => {
|
|
Object.defineProperty(process, 'platform', {
|
|
value: 'darwin',
|
|
})
|
|
|
|
// Call the dispose function
|
|
const result = await index.dispose()
|
|
|
|
// Assert that the result is as expected
|
|
expect(result).toBeUndefined()
|
|
})
|
|
|
|
it('should kill the subprocess successfully on Windows', async () => {
|
|
Object.defineProperty(process, 'platform', {
|
|
value: 'win32',
|
|
})
|
|
|
|
// Call the killSubprocess function
|
|
const result = await index.dispose()
|
|
|
|
// Assert that the result is as expected
|
|
expect(result).toBeUndefined()
|
|
})
|
|
})
|