From 2ec575b85c400086b0c7b954a22b9df60b849c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Thu, 17 Oct 2024 09:45:45 +0200 Subject: [PATCH] fix: traffic estimate should Math.floor price estimate to full million (#8468) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About the changes Closes # ### Important files ## Discussion points --- frontend/src/hooks/useTrafficData.test.ts | 16 +++++++++++++++- frontend/src/hooks/useTrafficData.ts | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/useTrafficData.test.ts b/frontend/src/hooks/useTrafficData.test.ts index dfd0c8b7a5..c20a68bbc2 100644 --- a/frontend/src/hooks/useTrafficData.test.ts +++ b/frontend/src/hooks/useTrafficData.test.ts @@ -34,13 +34,27 @@ describe('traffic overage calculation', () => { expect(result).toBe(0); }); - it('should return 5 if overage this month is atleast 1 request above included', () => { + it('should return 0 if overage this month is atleast 1 request above included', () => { const dataUsage = 53_000_001; const includedTraffic = 53_000_000; const result = calculateOverageCost(dataUsage, includedTraffic); + expect(result).toBe(0); + }); + + it('should return 5 if overage this month is atleast 1M request above included', () => { + const dataUsage = 54_000_000; + const includedTraffic = 53_000_000; + const result = calculateOverageCost(dataUsage, includedTraffic); expect(result).toBe(5); }); + it('should return 10 if overage this month is > 2M request above included', () => { + const dataUsage = 55_100_000; + const includedTraffic = 53_000_000; + const result = calculateOverageCost(dataUsage, includedTraffic); + expect(result).toBe(10); + }); + it('doesnt estimate when having less than 5 days worth of data', () => { const now = new Date(); const period = toSelectablePeriod(now); diff --git a/frontend/src/hooks/useTrafficData.ts b/frontend/src/hooks/useTrafficData.ts index bbd7b74ef6..20aaf30153 100644 --- a/frontend/src/hooks/useTrafficData.ts +++ b/frontend/src/hooks/useTrafficData.ts @@ -172,7 +172,8 @@ export const calculateOverageCost = ( return 0; } - const overage = dataUsage - includedTraffic; + const overage = + Math.floor((dataUsage - includedTraffic) / 1_000_000) * 1_000_000; return overage > 0 ? calculateTrafficDataCost(overage) : 0; };