diff --git a/src/transforms/aggregate.js b/src/transforms/aggregate.js index e3f009c5767..02b7c1d7cf3 100644 --- a/src/transforms/aggregate.js +++ b/src/transforms/aggregate.js @@ -164,7 +164,7 @@ exports.supplyDefaults = function(transformIn, traceOut) { if(!Array.isArray(groups)) { if(!arrayAttrs[groups]) { transformOut.enabled = false; - return; + return transformOut; } arrayAttrs[groups] = 0; } diff --git a/test/jasmine/tests/transform_aggregate_test.js b/test/jasmine/tests/transform_aggregate_test.js index 2161e1475b7..d000f3d012f 100644 --- a/test/jasmine/tests/transform_aggregate_test.js +++ b/test/jasmine/tests/transform_aggregate_test.js @@ -2,6 +2,7 @@ var Plotly = require('@lib/index'); var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); +var failTest = require('../assets/fail_test'); describe('aggregate', function() { var gd; @@ -341,4 +342,22 @@ describe('aggregate', function() { expect(enabledAggregations[2].target).toEqual('marker.color'); expect(enabledAggregations[2]._index).toEqual(-1); }); + + it('does not error out on bad *group* value', function(done) { + Plotly.newPlot(gd, [{ + y: [16.99, 10.34, 11.01, 23.68, 24.59], + transforms: [{ + type: 'aggregate', + groups: null + }] + }]) + .then(function() { + var tOut = gd._fullData[0].transforms[0]; + expect(tOut.type).toBe('aggregate', 'transform type'); + expect(tOut.groups).toBe('x', 'the *groups* default'); + expect(tOut.enabled).toBe(false, 'should not be *enabled*'); + }) + .catch(failTest) + .then(done); + }); });