From 49652224e25413b3dfdb3c96d14de3b07be9603e Mon Sep 17 00:00:00 2001 From: Sylvain UTARD Date: Mon, 26 Oct 2015 23:21:40 +0100 Subject: [PATCH] fix(generateRanges): avoid any infinite loop. Fix #351 --- widgets/price-ranges/__tests__/generate-ranges-test.js | 2 +- widgets/price-ranges/generate-ranges.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/widgets/price-ranges/__tests__/generate-ranges-test.js b/widgets/price-ranges/__tests__/generate-ranges-test.js index 96b007dfdd..e05e686aae 100644 --- a/widgets/price-ranges/__tests__/generate-ranges-test.js +++ b/widgets/price-ranges/__tests__/generate-ranges-test.js @@ -39,7 +39,7 @@ describe('generateRanges()', () => { expect(generateRanges(stats)).toEqual(expected); }); - it.only('should not do an infinite loop', () => { + it('should not do an infinite loop', () => { var stats = {min: 99.99, max: 149.99, avg: 124.99, sum: 249.98}; generateRanges(stats); }); diff --git a/widgets/price-ranges/generate-ranges.js b/widgets/price-ranges/generate-ranges.js index 17dcbfe759..4de1cd7dd0 100644 --- a/widgets/price-ranges/generate-ranges.js +++ b/widgets/price-ranges/generate-ranges.js @@ -33,15 +33,20 @@ function generateRanges(stats) { while (next < avg) { from = facetValues[facetValues.length - 1].to; next = round(from + (avg - min) / 3, precision); + if (next <= from) { + next = from + 1; + } facetValues.push({ from: from, to: next }); } while (next < max) { - console.log('YOLO LOOP') from = facetValues[facetValues.length - 1].to; next = round(from + (max - avg) / 3, precision); + if (next <= from) { + next = from + 1; + } facetValues.push({ from: from, to: next