From 9d29a33f86ef9d98b3bf4321b0fe634871e7ed5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 24 Oct 2016 14:12:19 -0400 Subject: [PATCH 1/2] plots: add identity _fullInput refs to fullTrace in non-transformed traces, for consistency with transformed traces --- src/plots/plots.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plots/plots.js b/src/plots/plots.js index f8c52b56624..70cf13f09fb 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -642,6 +642,11 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) { } } else { + + // add identify refs for consistency with transformed traces + fullTrace._fullInput = fullTrace; + fullTrace._expandedInput = fullTrace; + pushModule(fullTrace); } } From 03f7ef488a3134792528880a713e6e90fc5dccf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 25 Oct 2016 12:47:55 -0400 Subject: [PATCH 2/2] test: add case for fullData refs --- test/jasmine/tests/plots_test.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/jasmine/tests/plots_test.js b/test/jasmine/tests/plots_test.js index c3c967a5ab0..31260334cb0 100644 --- a/test/jasmine/tests/plots_test.js +++ b/test/jasmine/tests/plots_test.js @@ -64,6 +64,33 @@ describe('Test Plots', function() { expect(gd._fullLayout.yaxis._m) .not.toBe(oldFullLayout.yaxis._m, '(set during ax.setScale'); }); + + it('should include the correct reference to user data', function() { + var trace0 = { y: [1, 2, 3] }; + var trace1 = { y: [5, 2, 3] }; + + var data = [trace0, trace1]; + var gd = { data: data }; + + Plots.supplyDefaults(gd); + + expect(gd.data).toBe(data); + + expect(gd._fullData[0].index).toEqual(0); + expect(gd._fullData[1].index).toEqual(1); + + expect(gd._fullData[0]._expandedIndex).toEqual(0); + expect(gd._fullData[1]._expandedIndex).toEqual(1); + + expect(gd._fullData[0]._input).toBe(trace0); + expect(gd._fullData[1]._input).toBe(trace1); + + expect(gd._fullData[0]._fullInput).toBe(gd._fullData[0]); + expect(gd._fullData[1]._fullInput).toBe(gd._fullData[1]); + + expect(gd._fullData[0]._expandedInput).toBe(gd._fullData[0]); + expect(gd._fullData[1]._expandedInput).toBe(gd._fullData[1]); + }); }); describe('Plots.supplyLayoutGlobalDefaults should', function() {