fix: app does not relaunch on Linux - add tests
This commit is contained in:
parent
28add39a51
commit
52c520d2c3
@ -1,5 +1,5 @@
|
|||||||
// useModels.test.ts
|
// useModels.test.ts
|
||||||
import { renderHook, act } from '@testing-library/react'
|
import { renderHook, act, waitFor } from '@testing-library/react'
|
||||||
import { events, ModelEvent, ModelManager } from '@janhq/core'
|
import { events, ModelEvent, ModelManager } from '@janhq/core'
|
||||||
import { extensionManager } from '@/extension'
|
import { extensionManager } from '@/extension'
|
||||||
|
|
||||||
@ -36,7 +36,6 @@ describe('useModels', () => {
|
|||||||
}),
|
}),
|
||||||
get: () => undefined,
|
get: () => undefined,
|
||||||
has: () => true,
|
has: () => true,
|
||||||
// set: () => {}
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -50,6 +49,85 @@ describe('useModels', () => {
|
|||||||
expect(mockModelExtension.getModels).toHaveBeenCalled()
|
expect(mockModelExtension.getModels).toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should return empty on error', async () => {
|
||||||
|
const mockModelExtension = {
|
||||||
|
getModels: jest.fn().mockRejectedValue(new Error('Error')),
|
||||||
|
} as any
|
||||||
|
;(ModelManager.instance as jest.Mock).mockReturnValue({
|
||||||
|
models: {
|
||||||
|
values: () => ({
|
||||||
|
toArray: () => ({
|
||||||
|
filter: () => models,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
get: () => undefined,
|
||||||
|
has: () => true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
jest.spyOn(extensionManager, 'get').mockReturnValue(mockModelExtension)
|
||||||
|
|
||||||
|
const { result } = renderHook(() => useModels())
|
||||||
|
|
||||||
|
await act(() => {
|
||||||
|
result.current?.loadDataModel()
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(mockModelExtension.getModels()).rejects.toThrow()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should update states on models update', async () => {
|
||||||
|
const mockModelExtension = {
|
||||||
|
getModels: jest.fn().mockResolvedValue(models),
|
||||||
|
} as any
|
||||||
|
|
||||||
|
;(ModelManager.instance as jest.Mock).mockReturnValue({
|
||||||
|
models: {
|
||||||
|
values: () => ({
|
||||||
|
toArray: () => ({
|
||||||
|
filter: () => models,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
get: () => undefined,
|
||||||
|
has: () => true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
jest.spyOn(extensionManager, 'get').mockReturnValue(mockModelExtension)
|
||||||
|
jest.spyOn(events, 'on').mockImplementationOnce((event, cb) => {
|
||||||
|
cb({ fetch: false })
|
||||||
|
})
|
||||||
|
renderHook(() => useModels())
|
||||||
|
|
||||||
|
expect(mockModelExtension.getModels).not.toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should update states on models update', async () => {
|
||||||
|
const mockModelExtension = {
|
||||||
|
getModels: jest.fn().mockResolvedValue(models),
|
||||||
|
} as any
|
||||||
|
|
||||||
|
;(ModelManager.instance as jest.Mock).mockReturnValue({
|
||||||
|
models: {
|
||||||
|
values: () => ({
|
||||||
|
toArray: () => ({
|
||||||
|
filter: () => models,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
get: () => undefined,
|
||||||
|
has: () => true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
jest.spyOn(extensionManager, 'get').mockReturnValue(mockModelExtension)
|
||||||
|
jest.spyOn(events, 'on').mockImplementationOnce((event, cb) => {
|
||||||
|
cb({ fetch: true })
|
||||||
|
})
|
||||||
|
renderHook(() => useModels())
|
||||||
|
|
||||||
|
expect(mockModelExtension.getModels).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
it('should remove event listener on unmount', async () => {
|
it('should remove event listener on unmount', async () => {
|
||||||
const removeListenerSpy = jest.spyOn(events, 'off')
|
const removeListenerSpy = jest.spyOn(events, 'off')
|
||||||
|
|
||||||
|
|||||||
@ -223,7 +223,9 @@ const Advanced = () => {
|
|||||||
}
|
}
|
||||||
setGpusInUse(updatedGpusInUse)
|
setGpusInUse(updatedGpusInUse)
|
||||||
await saveSettings({ gpusInUse: updatedGpusInUse })
|
await saveSettings({ gpusInUse: updatedGpusInUse })
|
||||||
window.core?.api?.relaunch()
|
// Reload window to apply changes
|
||||||
|
// This will trigger engine servers to restart
|
||||||
|
window.location.reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
const gpuSelectionPlaceHolder =
|
const gpuSelectionPlaceHolder =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user