diff --git a/src/traces/scattergl/convert.js b/src/traces/scattergl/convert.js index 6aa788af67e..27916fca170 100644 --- a/src/traces/scattergl/convert.js +++ b/src/traces/scattergl/convert.js @@ -112,7 +112,8 @@ function convertTextStyle(trace) { var i; optsOut.text = trace.text; - if(Array.isArray(optsOut.text)) { + if(Array.isArray(optsOut.text) && optsOut.text.length < count) { + optsOut.text = trace.text.slice(); for(i = optsOut.text.length; i < count; i++) { optsOut.text[i] = ''; } diff --git a/test/jasmine/tests/scattergl_test.js b/test/jasmine/tests/scattergl_test.js index 67a3813b51d..fed8cb7eb0f 100644 --- a/test/jasmine/tests/scattergl_test.js +++ b/test/jasmine/tests/scattergl_test.js @@ -107,14 +107,19 @@ describe('end-to-end scattergl tests', function() { it('@gl should handle a plot with less text labels than data points', function(done) { expect(function() { - Plotly.plot(gd, [{ + var mock = { 'type': 'scattergl', 'mode': 'markers+text', 'x': [3, 2, 1, 0], 'y': [0, 1, 4, 9], - 'text': ['1', '2', '3'], 'textposition': 'top center' - }]); + }; + mock.text = ['1', '2', '3']; + Plotly.plot(gd, [mock]) + .then(function() { + expect(mock.text.length).toBe(3); + }) + .catch(failTest); }).not.toThrow(); done(); });