From 849bc044ad286b961b2370c47874118b0aaa3d44 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Wed, 29 Jun 2022 18:06:04 -0600 Subject: [PATCH 1/9] Respecting max/min opacities, and adding tests. --- .../src/utils/getColorFormatters.ts | 28 ++++++++++++------- .../test/utils/getColorFormatters.test.ts | 2 ++ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index 37729459f8dac..a781e83bff994 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -37,16 +37,24 @@ export const getOpacity = ( extremeValue: number, minOpacity = MIN_OPACITY_BOUNDED, maxOpacity = MAX_OPACITY, -) => - extremeValue === cutoffPoint - ? maxOpacity - : round( - Math.abs( - ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * - (value - cutoffPoint), - ) + minOpacity, - 2, - ); +) => { + if (extremeValue === cutoffPoint) { + return maxOpacity; + } + const result = round( + Math.abs( + ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * + (value - cutoffPoint), + ) + minOpacity, + 2, + ); + + if (result < minOpacity) { + return minOpacity; + } + + return result > maxOpacity ? maxOpacity : result; +}; export const getColorFunction = ( { diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 051089f87cfc6..23d712128f0c7 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -50,6 +50,8 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 50)).toEqual(0.05); expect(getOpacity(100, 100, 100, 0, 0.8)).toEqual(0.8); expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); + expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); + expect(getOpacity(-999, 100, 50, 0, 1)).toEqual(0.05); }); }); From 012f92217f39cff42bc01805d7686860d17408c1 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 11:08:03 -0600 Subject: [PATCH 2/9] revising tests --- .../test/utils/getColorFormatters.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 23d712128f0c7..58aef96be3808 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -51,7 +51,7 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 100, 0, 0.8)).toEqual(0.8); expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); - expect(getOpacity(-999, 100, 50, 0, 1)).toEqual(0.05); + expect(getOpacity(100, 100, 50, 0.99, 1)).toEqual(0.99); }); }); From 71b786dfec0c2b69dda5ed74e94481a15077ffd3 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 12:04:38 -0600 Subject: [PATCH 3/9] Adding missing test case for maximum coverage :) --- .../test/utils/getColorFormatters.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 58aef96be3808..94945afec498c 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -52,6 +52,7 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); expect(getOpacity(100, 100, 50, 0.99, 1)).toEqual(0.99); + expect(getOpacity(99.9, 100, 50, 0.05, 1)).toEqual(0.05); }); }); From 48996ae261510f7b7701132954766ec29e9292d4 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 12:41:20 -0600 Subject: [PATCH 4/9] removing unnecessary logic and test --- .../src/utils/getColorFormatters.ts | 4 ---- .../test/utils/getColorFormatters.test.ts | 1 - 2 files changed, 5 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index a781e83bff994..6c2a507f44242 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -49,10 +49,6 @@ export const getOpacity = ( 2, ); - if (result < minOpacity) { - return minOpacity; - } - return result > maxOpacity ? maxOpacity : result; }; diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 94945afec498c..58aef96be3808 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -52,7 +52,6 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); expect(getOpacity(100, 100, 50, 0.99, 1)).toEqual(0.99); - expect(getOpacity(99.9, 100, 50, 0.05, 1)).toEqual(0.05); }); }); From 65c2d0852390320e12c5a65df84c192d70823b53 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 13:10:32 -0600 Subject: [PATCH 5/9] adding another unit test for (hopefully) full coverage. --- .../test/utils/getColorFormatters.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 58aef96be3808..4b957f628c32f 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -52,6 +52,7 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); expect(getOpacity(100, 100, 50, 0.99, 1)).toEqual(0.99); + expect(getOpacity(99, 100, 50, 0, 1)).toEqual(0.02); }); }); From 282f6832a73cf43890a13e8b1db41d0058cbfa96 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 13:49:41 -0600 Subject: [PATCH 6/9] no more ternary operator --- .../superset-ui-chart-controls/src/utils/getColorFormatters.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index 6c2a507f44242..ba3908893ef55 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -49,7 +49,8 @@ export const getOpacity = ( 2, ); - return result > maxOpacity ? maxOpacity : result; + if (result > maxOpacity) return maxOpacity; + return result; }; export const getColorFunction = ( From 27365d4299522813015dd14f66af222e3b3bb541 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 14:07:59 -0600 Subject: [PATCH 7/9] New approach with Math.min - take THAT codecov. --- .../superset-ui-chart-controls/src/utils/getColorFormatters.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index ba3908893ef55..77cc5ff8300e6 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -49,8 +49,7 @@ export const getOpacity = ( 2, ); - if (result > maxOpacity) return maxOpacity; - return result; + return Math.min(result, maxOpacity); }; export const getColorFunction = ( From 1101a5597b449861902226b5b810dc6a67156356 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 14:26:32 -0600 Subject: [PATCH 8/9] one more stab at making codecov happy... ignoring the file next. --- .../src/utils/getColorFormatters.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index 77cc5ff8300e6..cee935af6b097 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -41,15 +41,13 @@ export const getOpacity = ( if (extremeValue === cutoffPoint) { return maxOpacity; } - const result = round( + else return Math.min(maxOpacity, round( Math.abs( ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * (value - cutoffPoint), ) + minOpacity, 2, - ); - - return Math.min(result, maxOpacity); + )); }; export const getColorFunction = ( From 0dd7d4aadeacb97465df28a231ad124fb174ba0f Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Thu, 30 Jun 2022 15:22:48 -0600 Subject: [PATCH 9/9] lint fixes --- .../src/utils/getColorFormatters.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index cee935af6b097..f613beb0743f8 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -41,13 +41,16 @@ export const getOpacity = ( if (extremeValue === cutoffPoint) { return maxOpacity; } - else return Math.min(maxOpacity, round( - Math.abs( - ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * - (value - cutoffPoint), - ) + minOpacity, - 2, - )); + return Math.min( + maxOpacity, + round( + Math.abs( + ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * + (value - cutoffPoint), + ) + minOpacity, + 2, + ), + ); }; export const getColorFunction = (