@@ -90,7 +90,7 @@ describe('prepareWhiteboardVDiskData', () => {
9090
9191 AvailableSize : 188523479040 ,
9292 AllocatedSize : 8996782080 ,
93- TotalSize : 197520261120 ,
93+ SizeLimit : 197520261120 ,
9494 AllocatedPercent : 4 ,
9595 } ;
9696
@@ -180,29 +180,92 @@ describe('prepareWhiteboardPDiskData', () => {
180180} ) ;
181181
182182describe ( 'prepareVDiskSizeFields' , ( ) => {
183- test ( 'Should prepare VDisk size fields' , ( ) => {
183+ test ( 'Should prepare VDisk size fields with allocated + available as size limit ' , ( ) => {
184184 expect (
185185 prepareVDiskSizeFields ( {
186186 AvailableSize : '400' ,
187187 AllocatedSize : '100' ,
188+ SlotSize : '500' ,
188189 } ) ,
189190 ) . toEqual ( {
190191 AvailableSize : 400 ,
191192 AllocatedSize : 100 ,
192- TotalSize : 500 ,
193- AllocatedPercent : 20 ,
193+ SizeLimit : 500 , // allocated (100) + available (400) = 500
194+ AllocatedPercent : 20 , // 100 / 500 * 100 = 20%
194195 } ) ;
195196 } ) ;
196- test ( 'Returns NaN if on undefined data' , ( ) => {
197+
198+ test ( 'Should use SlotSize as size limit when AvailableSize is 0' , ( ) => {
199+ expect (
200+ prepareVDiskSizeFields ( {
201+ AvailableSize : '0' ,
202+ AllocatedSize : '500' ,
203+ SlotSize : '500' ,
204+ } ) ,
205+ ) . toEqual ( {
206+ AvailableSize : 0 ,
207+ AllocatedSize : 500 ,
208+ SizeLimit : 500 , // SlotSize is used when available is 0
209+ AllocatedPercent : 100 , // 500 / 500 * 100 = 100%
210+ } ) ;
211+ } ) ;
212+
213+ test ( 'Should use SlotSize as size limit when AvailableSize is undefined' , ( ) => {
214+ expect (
215+ prepareVDiskSizeFields ( {
216+ AvailableSize : undefined ,
217+ AllocatedSize : '300' ,
218+ SlotSize : '500' ,
219+ } ) ,
220+ ) . toEqual ( {
221+ AvailableSize : 0 ,
222+ AllocatedSize : 300 ,
223+ SizeLimit : 500 , // SlotSize is used when available is undefined
224+ AllocatedPercent : 60 , // 300 / 500 * 100 = 60%
225+ } ) ;
226+ } ) ;
227+
228+ test ( 'Should use allocated when SlotSize is undefined and available is 0' , ( ) => {
229+ expect (
230+ prepareVDiskSizeFields ( {
231+ AvailableSize : '0' ,
232+ AllocatedSize : '500' ,
233+ SlotSize : undefined ,
234+ } ) ,
235+ ) . toEqual ( {
236+ AvailableSize : 0 ,
237+ AllocatedSize : 500 ,
238+ SizeLimit : 500 , // allocated (500)
239+ AllocatedPercent : 100 , // 500 / 500 * 100 = 100%
240+ } ) ;
241+ } ) ;
242+
243+ test ( 'Should handle case when used size exceeds slot size' , ( ) => {
244+ expect (
245+ prepareVDiskSizeFields ( {
246+ AvailableSize : '0' ,
247+ AllocatedSize : '800' ,
248+ SlotSize : '500' ,
249+ } ) ,
250+ ) . toEqual ( {
251+ AvailableSize : 0 ,
252+ AllocatedSize : 800 ,
253+ SizeLimit : 500 , // SlotSize is used as limit
254+ AllocatedPercent : 160 , // 800 / 500 * 100 = 160%
255+ } ) ;
256+ } ) ;
257+
258+ test ( 'Should return NaN for undefined data' , ( ) => {
197259 expect (
198260 prepareVDiskSizeFields ( {
199261 AvailableSize : undefined ,
200262 AllocatedSize : undefined ,
263+ SlotSize : undefined ,
201264 } ) ,
202265 ) . toEqual ( {
203- AvailableSize : NaN ,
266+ AvailableSize : 0 ,
204267 AllocatedSize : NaN ,
205- TotalSize : NaN ,
268+ SizeLimit : NaN ,
206269 AllocatedPercent : NaN ,
207270 } ) ;
208271 } ) ;
0 commit comments