diff --git a/src/traces/heatmap/xyz_defaults.js b/src/traces/heatmap/xyz_defaults.js index d411aa42cdd..8be45ca87f0 100644 --- a/src/traces/heatmap/xyz_defaults.js +++ b/src/traces/heatmap/xyz_defaults.js @@ -44,7 +44,10 @@ module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, x traceOut._length = null; } - if(traceIn.type === 'heatmapgl') return true; // until we handle calendars for heatmapgl + if( + traceIn.type === 'heatmapgl' || + traceIn.type === 'contourgl' + ) return true; // skip calendars until we handle them in those traces var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults'); handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout); diff --git a/test/jasmine/tests/contourgl_test.js b/test/jasmine/tests/contourgl_test.js index d77fe1792f1..bdf1a40c936 100644 --- a/test/jasmine/tests/contourgl_test.js +++ b/test/jasmine/tests/contourgl_test.js @@ -1,12 +1,17 @@ var Plotly = require('@lib/index'); var Lib = require('@src/lib'); var d3 = require('d3'); +var supplyDefaults = require('@src/traces/heatmapgl').supplyDefaults; +var Plots = require('@src/plots/plots'); // contourgl is not part of the dist plotly.js bundle initially Plotly.register([ require('@lib/contourgl') ]); +var schema = Plotly.PlotSchema.get(); +var attributeList = Object.getOwnPropertyNames(schema.traces.heatmapgl.attributes); + // Test utilities var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); @@ -250,3 +255,36 @@ describe('contourgl plots', function() { }); }); }); + +describe('heatmapgl supplyDefaults', function() { + 'use strict'; + + var traceIn; + var traceOut; + + var defaultColor = '#444'; + var layout = { + font: Plots.layoutAttributes.font, + _dfltTitle: {colorbar: 'cb'}, + _subplots: {cartesian: ['xy'], xaxis: ['x'], yaxis: ['y']} + }; + + beforeEach(function() { + traceOut = {}; + }); + + it('should only coerce attributes that are part of scheme', function() { + traceIn = { + type: 'contourgl', + z: [[0, 1], [1, 0]] + }; + + supplyDefaults(traceIn, traceOut, defaultColor, layout); + var allKeys = Object.getOwnPropertyNames(traceOut); + allKeys.forEach(function(key) { + if(key[0] !== '_') { + expect(attributeList.indexOf(key)).not.toBe(-1, key); + } + }); + }); +});