@@ -109,7 +109,7 @@ describe('Data Fetcher', () => {
109
109
expect ( result . vms ) . toEqual ( [ ] ) ;
110
110
expect ( result . containers ) . toEqual ( [ ] ) ;
111
111
expect ( result . pbs ) . toEqual ( [ ] ) ; // PBS fetch should still run
112
- expect ( consoleLogSpy ) . toHaveBeenCalledWith ( "[DataFetcher] Discovery cycle completed. Found: 0 PVE nodes, 0 VMs, 0 CTs, 0 PBS instances." ) ;
112
+ expect ( consoleLogSpy ) . toHaveBeenCalledWith ( "[DataFetcher] Discovery cycle completed. Found: 0 PVE nodes, 0 VMs, 0 CTs, 0 PBS instances, 0 PVE backup tasks, 0 guest snapshots ." ) ;
113
113
expect ( mockPbsFunction ) . toHaveBeenCalled ( ) ; // Ensure PBS was still called
114
114
115
115
consoleLogSpy . mockRestore ( ) ;
@@ -132,20 +132,27 @@ describe('Data Fetcher', () => {
132
132
. mockResolvedValueOnce ( { data : { data : { cpu : 0.1 , mem : 2 * 1024 ** 3 , rootfs : { total : 100 * 1024 ** 3 , used : 20 * 1024 ** 3 } , uptime : 12345 } } } ) // 4. /nodes/mock-node/status
133
133
. mockResolvedValueOnce ( { data : { data : [ { storage : 'local-lvm' , type : 'lvmthin' , content : 'images,rootdir' , total : 500 * 1024 ** 3 , used : 150 * 1024 ** 3 } ] } } ) // 5. /nodes/mock-node/storage
134
134
. mockResolvedValueOnce ( { data : { data : [ { vmid : vmId , name : 'test-vm' , status : 'running' , cpu : 0.5 , mem : 1 * 1024 ** 3 , maxmem : 2 * 1024 ** 3 , maxdisk : 32 * 1024 ** 3 } ] } } ) // 6. /nodes/mock-node/qemu
135
- . mockResolvedValueOnce ( { data : { data : [ { vmid : ctId , name : 'test-ct' , status : 'running' , cpu : 0.2 , mem : 512 * 1024 ** 2 , maxmem : 1 * 1024 ** 3 , maxdisk : 8 * 1024 ** 3 } ] } } ) ; // 7. /nodes/mock-node/lxc
135
+ . mockResolvedValueOnce ( { data : { data : [ { vmid : ctId , name : 'test-ct' , status : 'running' , cpu : 0.2 , mem : 512 * 1024 ** 2 , maxmem : 1 * 1024 ** 3 , maxdisk : 8 * 1024 ** 3 } ] } } ) // 7. /nodes/mock-node/lxc
136
+ // Additional calls for backup data
137
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) // 8. /nodes/mock-node/tasks (backup tasks)
138
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) // 9. /nodes/mock-node/qemu/100/snapshot (VM snapshots)
139
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) ; // 10. /nodes/mock-node/lxc/101/snapshot (CT snapshots)
136
140
137
141
// Act: Call function with the clients provided by the (mocked) default setup
138
142
const result = await fetchDiscoveryData ( mockPveApiClient , mockPbsApiClient ) ;
139
143
140
144
// Assert
141
- expect ( mockPveClientInstance . get ) . toHaveBeenCalledTimes ( 7 ) ; // Updated to 7
145
+ expect ( mockPveClientInstance . get ) . toHaveBeenCalledTimes ( 10 ) ; // Updated to 10 for backup calls
142
146
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 1 , '/cluster/status' ) ;
143
147
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 2 , '/nodes' ) ; // For standaloneNodeName
144
148
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 3 , '/nodes' ) ; // Main nodes call
145
149
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 4 , `/nodes/${ nodeName } /status` ) ;
146
150
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 5 , `/nodes/${ nodeName } /storage` ) ;
147
151
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 6 , `/nodes/${ nodeName } /qemu` ) ;
148
152
expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 7 , `/nodes/${ nodeName } /lxc` ) ;
153
+ expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 8 , `/nodes/${ nodeName } /tasks` , { params : { typefilter : 'vzdump' , limit : 1000 } } ) ;
154
+ expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 9 , `/nodes/${ nodeName } /qemu/${ vmId } /snapshot` ) ;
155
+ expect ( mockPveClientInstance . get ) . toHaveBeenNthCalledWith ( 10 , `/nodes/${ nodeName } /lxc/${ ctId } /snapshot` ) ;
149
156
150
157
// Assert Nodes
151
158
expect ( result . nodes ) . toHaveLength ( 1 ) ;
@@ -189,6 +196,12 @@ describe('Data Fetcher', () => {
189
196
id : `${ endpointId } -${ nodeName } -${ ctId } ` // Check constructed ID
190
197
} ) ;
191
198
199
+ // Assert PVE Backups
200
+ expect ( result . pveBackups ) . toBeDefined ( ) ;
201
+ expect ( result . pveBackups . backupTasks ) . toEqual ( [ ] ) ;
202
+ expect ( result . pveBackups . storageBackups ) . toEqual ( [ ] ) ;
203
+ expect ( result . pveBackups . guestSnapshots ) . toEqual ( [ ] ) ;
204
+
192
205
// Assert PBS (should be empty)
193
206
expect ( result . pbs ) . toBeDefined ( ) ;
194
207
expect ( result . pbs ) . toHaveLength ( 0 ) ;
@@ -289,7 +302,8 @@ describe('Data Fetcher', () => {
289
302
. mockResolvedValueOnce ( { data : { data : { cpu : 0.1 , uptime : 10 } } } ) // 4. /nodes/node-pve2/status
290
303
. mockResolvedValueOnce ( { data : { data : [ ] } } ) // 5. /nodes/node-pve2/storage
291
304
. mockResolvedValueOnce ( { data : { data : [ ] } } ) // 6. /nodes/node-pve2/qemu
292
- . mockResolvedValueOnce ( { data : { data : [ ] } } ) ; // 7. /nodes/node-pve2/lxc <<< SHOULD BE EMPTY
305
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) // 7. /nodes/node-pve2/lxc <<< SHOULD BE EMPTY
306
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) ; // 8. /nodes/node-pve2/tasks (backup tasks)
293
307
294
308
const result = await fetchDiscoveryData ( mockClients , { } ) ; // Pass custom clients
295
309
@@ -300,7 +314,7 @@ describe('Data Fetcher', () => {
300
314
// );
301
315
302
316
// Assert mockPveClientInstance2 (successful endpoint)
303
- expect ( mockPveClientInstance2 . get ) . toHaveBeenCalledTimes ( 7 ) ;
317
+ expect ( mockPveClientInstance2 . get ) . toHaveBeenCalledTimes ( 8 ) ;
304
318
305
319
// Should still return data from the successful endpoint (pve2)
306
320
expect ( result . nodes ) . toHaveLength ( 1 ) ;
@@ -700,7 +714,8 @@ describe('Data Fetcher', () => {
700
714
. mockRejectedValueOnce ( statusFetchError ) // 4. /nodes/${nodeName}/status << THIS FAILS
701
715
. mockResolvedValueOnce ( { data : { data : [ ] } } ) // 5. /nodes/${nodeName}/storage (subsequent calls should still be mocked)
702
716
. mockResolvedValueOnce ( { data : { data : [ ] } } ) // 6. /nodes/${nodeName}/qemu
703
- . mockResolvedValueOnce ( { data : { data : [ ] } } ) ; // 7. /nodes/${nodeName}/lxc
717
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) // 7. /nodes/${nodeName}/lxc
718
+ . mockResolvedValueOnce ( { data : { data : [ ] } } ) ; // 8. /nodes/${nodeName}/tasks (backup tasks)
704
719
705
720
const result = await fetchDiscoveryData ( mockPveApiClient , mockPbsApiClient ) ;
706
721
@@ -801,7 +816,12 @@ describe('Data Fetcher', () => {
801
816
nodes : [ ] ,
802
817
vms : [ ] ,
803
818
containers : [ ] ,
804
- pbs : [ ]
819
+ pbs : [ ] ,
820
+ pveBackups : {
821
+ backupTasks : [ ] ,
822
+ guestSnapshots : [ ] ,
823
+ storageBackups : [ ]
824
+ }
805
825
} ) ;
806
826
807
827
consoleErrorSpy . mockRestore ( ) ;
0 commit comments