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; };