diff --git a/superset/assets/javascripts/explore/components/ChartContainer.jsx b/superset/assets/javascripts/explore/components/ChartContainer.jsx index 6c2f0af23ee07..9132683b03e13 100644 --- a/superset/assets/javascripts/explore/components/ChartContainer.jsx +++ b/superset/assets/javascripts/explore/components/ChartContainer.jsx @@ -167,6 +167,7 @@ class ChartContainer extends React.PureComponent { } renderAlert() { + /* eslint-disable react/no-danger */ const msg = (
{ + it('tryNumify works as expected', () => { + expect(tryNumify(5)).to.equal(5); + expect(tryNumify('5')).to.equal(5); + expect(tryNumify('5.1')).to.equal(5.1); + expect(tryNumify('a string')).to.equal('a string'); + }); + it('slugify slugifies', () => { + expect(slugify('My Neat Label! ')).to.equal('my-neat-label'); + expect(slugify('Some Letters AnD a 5')).to.equal('some-letters-and-a-5'); + expect(slugify(' 439278 ')).to.equal('439278'); + expect(slugify('5')).to.equal('5'); + }); + it('formatSelectOptionsForRange', () => { + expect(formatSelectOptionsForRange(0, 4)).to.deep.equal([ + [0, '0'], + [1, '1'], + [2, '2'], + [3, '3'], + [4, '4'], + ]); + expect(formatSelectOptionsForRange(1, 2)).to.deep.equal([ + [1, '1'], + [2, '2'], + ]); + }); + it('d3format', () => { + expect(d3format('.3s', 1234)).to.equal('1.23k'); + expect(d3format('.3s', 1237)).to.equal('1.24k'); + expect(d3format('', 1237)).to.equal('1.24k'); + }); +}); diff --git a/superset/assets/visualizations/nvd3_vis.js b/superset/assets/visualizations/nvd3_vis.js index 5abf3d353899e..678b35b623165 100644 --- a/superset/assets/visualizations/nvd3_vis.js +++ b/superset/assets/visualizations/nvd3_vis.js @@ -5,7 +5,7 @@ import d3 from 'd3'; import { category21 } from '../javascripts/modules/colors'; import { timeFormatFactory, formatDate } from '../javascripts/modules/dates'; -import { customizeToolTip } from '../javascripts/modules/utils'; +import { customizeToolTip, tryNumify } from '../javascripts/modules/utils'; import { TIME_STAMP_OPTIONS } from '../javascripts/explore/stores/controls'; @@ -188,13 +188,7 @@ function nvd3Vis(slice, payload) { chart.stacked(stacked); if (fd.order_bars) { payload.data.forEach((d) => { - d.values.sort( - function compare(a, b) { - if (a.x < b.x) return -1; - if (a.x > b.x) return 1; - return 0; - }, - ); + d.values.sort((a, b) => tryNumify(a.x) < tryNumify(b.x) ? -1 : 1); }); } if (fd.show_bar_value) {