@@ -4,6 +4,7 @@ import { mathUtils } from '@clobbr/api';
4
4
import { formatNumber } from 'shared/util/numberFormat' ;
5
5
import { getDurationColorClass } from 'shared/util/getDurationColorClass' ;
6
6
import { isNumber } from 'lodash-es' ;
7
+ import { ClobbrUIResult } from 'models/ClobbrUIResult' ;
7
8
8
9
const { mean, q5, q95, q99, stdDev } = mathUtils ;
9
10
@@ -18,14 +19,27 @@ export const RESULT_STAT_TYPES: {
18
19
TOTAL_TIME : 'Total time (s)'
19
20
} ;
20
21
21
- export const getLogStats = ( logs : Array < ClobbrLogItem > ) => {
22
+ export const getLogStats = (
23
+ logs : Array < ClobbrLogItem > ,
24
+ result : ClobbrUIResult
25
+ ) => {
22
26
const qualifiedDurations = logs
23
27
. filter ( ( log ) => ! log . failed )
24
28
. filter ( ( log ) => isNumber ( log . metas . duration ) )
25
29
. map ( ( log ) => log . metas . duration as number ) ;
26
30
27
- const totalDuration = qualifiedDurations . reduce ( ( acc , curr ) => acc + curr , 0 ) ;
31
+ const startUnixTime = result . startDate
32
+ ? new Date ( result . startDate ) . valueOf ( )
33
+ : 0 ;
34
+ const endUnixTime = result . endDate ? new Date ( result . endDate ) . valueOf ( ) : 0 ;
35
+ const totalDuration = startUnixTime ? endUnixTime - startUnixTime : 0 ;
28
36
const totalDurationInSeconds = totalDuration / 1000 ;
37
+
38
+ const cumulativeDuration = qualifiedDurations . reduce (
39
+ ( acc , curr ) => acc + curr ,
40
+ 0
41
+ ) ;
42
+ const cumulativeDurationInSeconds = cumulativeDuration / 1000 ;
29
43
const meanValue = mean ( qualifiedDurations ) ;
30
44
const stdDevValue = stdDev ( qualifiedDurations ) ;
31
45
const q5Value = q5 ( qualifiedDurations ) ;
@@ -64,7 +78,7 @@ export const getLogStats = (logs: Array<ClobbrLogItem>) => {
64
78
colorClass : getDurationColorClass ( q99Value )
65
79
} ,
66
80
{
67
- value : formatNumber ( totalDurationInSeconds ) ,
81
+ value : formatNumber ( totalDurationInSeconds , 1 ) ,
68
82
unit : 's' ,
69
83
label : 'Total time' ,
70
84
colorClass : getDurationColorClass ( 0 ) // Always green
0 commit comments