Skip to content

Commit 104c06c

Browse files
committed
feature: test code added
1 parent a9d5067 commit 104c06c

File tree

2 files changed

+149
-0
lines changed

2 files changed

+149
-0
lines changed

tests-ui/tests/composables/useManagerQueue.test.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,5 +161,61 @@ describe('useManagerQueue', () => {
161161
expect(taskHistory.value).toHaveProperty('task1')
162162
expect(taskHistory.value).not.toHaveProperty('task2')
163163
})
164+
165+
it('normalizes pack IDs when updating installed packs', () => {
166+
const queue = createManagerQueue()
167+
168+
const mockState = {
169+
history: {},
170+
running_queue: [],
171+
pending_queue: [],
172+
installed_packs: {
173+
'ComfyUI-GGUF@1_1_4': {
174+
enabled: false,
175+
cnr_id: 'ComfyUI-GGUF',
176+
ver: '1.1.4'
177+
},
178+
'test-pack': {
179+
enabled: true,
180+
cnr_id: 'test-pack',
181+
ver: '2.0.0'
182+
}
183+
}
184+
}
185+
186+
queue.updateTaskState(mockState)
187+
188+
// Packs should be accessible by normalized keys
189+
expect(installedPacks.value['ComfyUI-GGUF']).toEqual({
190+
enabled: false,
191+
cnr_id: 'ComfyUI-GGUF',
192+
ver: '1.1.4'
193+
})
194+
expect(installedPacks.value['test-pack']).toEqual({
195+
enabled: true,
196+
cnr_id: 'test-pack',
197+
ver: '2.0.0'
198+
})
199+
200+
// Version suffixed keys should not exist
201+
expect(installedPacks.value['ComfyUI-GGUF@1_1_4']).toBeUndefined()
202+
})
203+
204+
it('handles empty installed_packs gracefully', () => {
205+
const queue = createManagerQueue()
206+
207+
const mockState: any = {
208+
history: {},
209+
running_queue: [],
210+
pending_queue: [],
211+
installed_packs: undefined
212+
}
213+
214+
// Should not throw
215+
expect(() => queue.updateTaskState(mockState)).not.toThrow()
216+
217+
// installedPacks should remain unchanged
218+
expect(installedPacks.value).toEqual({})
219+
})
164220
})
165221
})

tests-ui/tests/store/comfyManagerStore.test.ts

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,4 +439,97 @@ describe('useComfyManagerStore', () => {
439439
expect(store.isPackInstalling('pack-3')).toBe(false)
440440
})
441441
})
442+
443+
describe('refreshInstalledList with pack ID normalization', () => {
444+
it('normalizes pack IDs by removing version suffixes', async () => {
445+
const mockPacks = {
446+
'ComfyUI-GGUF@1_1_4': {
447+
enabled: false,
448+
cnr_id: 'ComfyUI-GGUF',
449+
ver: '1.1.4',
450+
aux_id: undefined
451+
},
452+
'ComfyUI-Manager': {
453+
enabled: true,
454+
cnr_id: 'ComfyUI-Manager',
455+
ver: '2.0.0',
456+
aux_id: undefined
457+
}
458+
}
459+
460+
;(mockManagerService.listInstalledPacks as any).mockResolvedValue(
461+
mockPacks
462+
)
463+
464+
const store = useComfyManagerStore()
465+
await store.refreshInstalledList()
466+
467+
// Both packs should be accessible by their base name
468+
expect(store.installedPacks['ComfyUI-GGUF']).toEqual({
469+
enabled: false,
470+
cnr_id: 'ComfyUI-GGUF',
471+
ver: '1.1.4',
472+
aux_id: undefined
473+
})
474+
expect(store.installedPacks['ComfyUI-Manager']).toEqual({
475+
enabled: true,
476+
cnr_id: 'ComfyUI-Manager',
477+
ver: '2.0.0',
478+
aux_id: undefined
479+
})
480+
481+
// Version suffixed keys should not exist
482+
expect(store.installedPacks['ComfyUI-GGUF@1_1_4']).toBeUndefined()
483+
})
484+
485+
it('handles duplicate keys after normalization', async () => {
486+
const mockPacks = {
487+
'test-pack': {
488+
enabled: true,
489+
cnr_id: 'test-pack',
490+
ver: '1.0.0',
491+
aux_id: undefined
492+
},
493+
'test-pack@1_1_0': {
494+
enabled: false,
495+
cnr_id: 'test-pack',
496+
ver: '1.1.0',
497+
aux_id: undefined
498+
}
499+
}
500+
501+
;(mockManagerService.listInstalledPacks as any).mockResolvedValue(
502+
mockPacks
503+
)
504+
505+
const store = useComfyManagerStore()
506+
await store.refreshInstalledList()
507+
508+
// The normalized key should exist (last one wins with mapKeys)
509+
expect(store.installedPacks['test-pack']).toBeDefined()
510+
expect(store.installedPacks['test-pack'].ver).toBe('1.1.0')
511+
})
512+
513+
it('preserves version information for disabled packs', async () => {
514+
const mockPacks = {
515+
'disabled-pack@2_0_0': {
516+
enabled: false,
517+
cnr_id: 'disabled-pack',
518+
ver: '2.0.0',
519+
aux_id: undefined
520+
}
521+
}
522+
523+
;(mockManagerService.listInstalledPacks as any).mockResolvedValue(
524+
mockPacks
525+
)
526+
527+
const store = useComfyManagerStore()
528+
await store.refreshInstalledList()
529+
530+
// Pack should be accessible by base name with version preserved
531+
expect(store.getInstalledPackVersion('disabled-pack')).toBe('2.0.0')
532+
expect(store.isPackInstalled('disabled-pack')).toBe(true)
533+
})
534+
})
442535
})

0 commit comments

Comments
 (0)