From 67a91e47dc47d15b2e8302ee672e34b5d95eb1aa Mon Sep 17 00:00:00 2001 From: e-for-eshaan Date: Tue, 23 Apr 2024 20:33:55 +0530 Subject: [PATCH] evaluates badgeDetails for deployment frequency consitently for prev and curr --- .../DoraMetrics/DoraCards/sharedHooks.tsx | 29 ++++++++++--------- .../src/utils/adapt_deployment_frequency.ts | 17 +++++++++-- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/web-server/src/content/DoraMetrics/DoraCards/sharedHooks.tsx b/web-server/src/content/DoraMetrics/DoraCards/sharedHooks.tsx index e447f8df1..da390f8d4 100644 --- a/web-server/src/content/DoraMetrics/DoraCards/sharedHooks.tsx +++ b/web-server/src/content/DoraMetrics/DoraCards/sharedHooks.tsx @@ -9,6 +9,7 @@ import { useAuth } from '@/hooks/useAuth'; import { doraMetricsSlice } from '@/slices/dora_metrics'; import { useDispatch, useSelector } from '@/store'; import { ChangeTimeModes, IntegrationGroup } from '@/types/resources'; +import { getBadgeDetails } from '@/utils/adapt_deployment_frequency'; import { getDoraScore } from '@/utils/dora'; import { @@ -205,26 +206,28 @@ export const usePropsForChangeTimeCard = () => { }; export const useAvgWeeklyDeploymentFrequency = () => { - let avgDeploymentFrequency = useSelector( - (s) => - s.doraMetrics.metrics_summary?.deployment_frequency_stats.current - .avg_daily_deployment_frequency || 0 + const currentDeploymentFrequency = useSelector( + (s) => s.doraMetrics.metrics_summary?.deployment_frequency_stats.current ); - let prevAvgDeploymentFrequency = useSelector( - (s) => - s.doraMetrics.metrics_summary?.deployment_frequency_stats.previous - .avg_daily_deployment_frequency || 0 + + const previousDeploymentFrequency = useSelector( + (s) => s.doraMetrics.metrics_summary?.deployment_frequency_stats.previous ); - const interval = 'week'; + const avgDeploymentFrequency = getBadgeDetails(currentDeploymentFrequency); + + const prevAvgDeploymentFrequency = getBadgeDetails( + previousDeploymentFrequency, + avgDeploymentFrequency.duration + ); const metricInterval = useMemo(() => { return { - count: avgDeploymentFrequency, - prev: prevAvgDeploymentFrequency, - interval + count: avgDeploymentFrequency.avg_deployment_frequency, + prev: prevAvgDeploymentFrequency.avg_deployment_frequency, + interval: avgDeploymentFrequency.duration }; - }, [avgDeploymentFrequency, interval, prevAvgDeploymentFrequency]); + }, [avgDeploymentFrequency, prevAvgDeploymentFrequency]); return useMemo(() => { const key = updatedDeploymentFrequencyThresholds(metricInterval); diff --git a/web-server/src/utils/adapt_deployment_frequency.ts b/web-server/src/utils/adapt_deployment_frequency.ts index d1bac1e56..fcc786074 100644 --- a/web-server/src/utils/adapt_deployment_frequency.ts +++ b/web-server/src/utils/adapt_deployment_frequency.ts @@ -24,12 +24,25 @@ const adaptTeamAnalytics = ( })); }; -const getBadgeDetails = ( - data: Partial +const badgeDetailsToKey = { + day: 'avg_daily_deployment_frequency', + week: 'avg_weekly_deployment_frequency', + month: 'avg_monthly_deployment_frequency' +} as const; + +export const getBadgeDetails = ( + data: Partial, + duration?: 'day' | 'week' | 'month' ): { avg_deployment_frequency: number; duration: 'day' | 'week' | 'month'; } => { + if (duration) { + return { + avg_deployment_frequency: data[badgeDetailsToKey[duration]], + duration + }; + } if (data.avg_daily_deployment_frequency >= 1) return { avg_deployment_frequency: data.avg_daily_deployment_frequency,