mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-01 03:31:58 +00:00
[test] Add tests for --disable-api-nodes release fetch skip functionality (#4799)
- Add comprehensive test coverage for the new --disable-api-nodes argument handling - Tests verify release fetching is properly skipped when argument is present - Cover edge cases including multiple args, null argv, and missing system stats - Ensures backward compatibility when argument is not present
This commit is contained in:
@@ -226,6 +226,14 @@ export const useReleaseStore = defineStore('release', () => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Skip fetching if API nodes are disabled via argv
|
||||||
|
if (
|
||||||
|
systemStatsStore.systemStats?.system?.argv?.includes(
|
||||||
|
'--disable-api-nodes'
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return
|
||||||
|
}
|
||||||
isLoading.value = true
|
isLoading.value = true
|
||||||
error.value = null
|
error.value = null
|
||||||
|
|
||||||
|
|||||||
@@ -251,6 +251,53 @@ describe('useReleaseStore', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should skip fetching when --disable-api-nodes is present', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = ['--disable-api-nodes']
|
||||||
|
|
||||||
|
await store.initialize()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).not.toHaveBeenCalled()
|
||||||
|
expect(store.isLoading).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should skip fetching when --disable-api-nodes is one of multiple args', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = [
|
||||||
|
'--port',
|
||||||
|
'8080',
|
||||||
|
'--disable-api-nodes',
|
||||||
|
'--verbose'
|
||||||
|
]
|
||||||
|
|
||||||
|
await store.initialize()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).not.toHaveBeenCalled()
|
||||||
|
expect(store.isLoading).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should fetch normally when --disable-api-nodes is not present', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = [
|
||||||
|
'--port',
|
||||||
|
'8080',
|
||||||
|
'--verbose'
|
||||||
|
]
|
||||||
|
mockReleaseService.getReleases.mockResolvedValue([mockRelease])
|
||||||
|
|
||||||
|
await store.initialize()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).toHaveBeenCalled()
|
||||||
|
expect(store.releases).toEqual([mockRelease])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should fetch normally when argv is undefined', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = undefined
|
||||||
|
mockReleaseService.getReleases.mockResolvedValue([mockRelease])
|
||||||
|
|
||||||
|
await store.initialize()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).toHaveBeenCalled()
|
||||||
|
expect(store.releases).toEqual([mockRelease])
|
||||||
|
})
|
||||||
|
|
||||||
it('should handle API errors gracefully', async () => {
|
it('should handle API errors gracefully', async () => {
|
||||||
mockReleaseService.getReleases.mockResolvedValue(null)
|
mockReleaseService.getReleases.mockResolvedValue(null)
|
||||||
mockReleaseService.error.value = 'API Error'
|
mockReleaseService.error.value = 'API Error'
|
||||||
@@ -307,6 +354,63 @@ describe('useReleaseStore', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('--disable-api-nodes argument handling', () => {
|
||||||
|
it('should skip fetchReleases when --disable-api-nodes is present', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = ['--disable-api-nodes']
|
||||||
|
|
||||||
|
await store.fetchReleases()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).not.toHaveBeenCalled()
|
||||||
|
expect(store.isLoading).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should skip fetchReleases when --disable-api-nodes is among other args', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = [
|
||||||
|
'--port',
|
||||||
|
'8080',
|
||||||
|
'--disable-api-nodes',
|
||||||
|
'--verbose'
|
||||||
|
]
|
||||||
|
|
||||||
|
await store.fetchReleases()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).not.toHaveBeenCalled()
|
||||||
|
expect(store.isLoading).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should proceed with fetchReleases when --disable-api-nodes is not present', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = [
|
||||||
|
'--port',
|
||||||
|
'8080',
|
||||||
|
'--verbose'
|
||||||
|
]
|
||||||
|
mockReleaseService.getReleases.mockResolvedValue([mockRelease])
|
||||||
|
|
||||||
|
await store.fetchReleases()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should proceed with fetchReleases when argv is null', async () => {
|
||||||
|
mockSystemStatsStore.systemStats.system.argv = null
|
||||||
|
mockReleaseService.getReleases.mockResolvedValue([mockRelease])
|
||||||
|
|
||||||
|
await store.fetchReleases()
|
||||||
|
|
||||||
|
expect(mockReleaseService.getReleases).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should proceed with fetchReleases when system stats are not available', async () => {
|
||||||
|
mockSystemStatsStore.systemStats = null
|
||||||
|
mockReleaseService.getReleases.mockResolvedValue([mockRelease])
|
||||||
|
|
||||||
|
await store.fetchReleases()
|
||||||
|
|
||||||
|
expect(mockSystemStatsStore.fetchSystemStats).toHaveBeenCalled()
|
||||||
|
expect(mockReleaseService.getReleases).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('action handlers', () => {
|
describe('action handlers', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
store.releases = [mockRelease]
|
store.releases = [mockRelease]
|
||||||
|
|||||||
Reference in New Issue
Block a user