From c98553a9f14b32ede6afd79ca5a86a3793d72d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 16:34:34 -0400 Subject: [PATCH 1/2] make rreusser's carpet tests pass --- test/jasmine/tests/carpet_test.js | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/test/jasmine/tests/carpet_test.js b/test/jasmine/tests/carpet_test.js index 861641f64da..a7213c5bfe7 100644 --- a/test/jasmine/tests/carpet_test.js +++ b/test/jasmine/tests/carpet_test.js @@ -1,26 +1,13 @@ -// var Plotly = require('@lib/index'); var Plots = require('@src/plots/plots'); -// var Lib = require('@src/lib'); var Carpet = require('@src/traces/carpet'); var smoothFill2D = require('@src/traces/carpet/smooth_fill_2d_array'); var smoothFill = require('@src/traces/carpet/smooth_fill_array'); -// var calc = require('@src/traces/carpet/calc'); var customMatchers = require('../assets/custom_matchers'); -// var d3 = require('d3'); -// var createGraphDiv = require('../assets/create_graph_div'); -// var destroyGraphDiv = require('../assets/destroy_graph_div'); -// var customMatchers = require('../assets/custom_matchers'); - -var test = { - supplyDefaults: false, - smoothFill2D: true -}; describe('carpet supplyDefaults', function() { - if(!test.supplyDefaults) return; 'use strict'; var traceIn, @@ -55,7 +42,6 @@ describe('carpet supplyDefaults', function() { expect(traceOut.db).toBeUndefined(); expect(traceOut.a0).toBeUndefined(); expect(traceOut.b0).toBeUndefined(); - expect(traceOut.visible).toBe(true); }); it('sets a0/da when a not provided', function() { @@ -222,7 +208,6 @@ describe('supplyDefaults visibility check', function() { }); describe('carpet smooth_fill_2d_array', function() { - if(!test.smoothFill2D) return; var _; beforeAll(function() { jasmine.addMatchers(customMatchers); }); @@ -389,7 +374,6 @@ describe('carpet smooth_fill_2d_array', function() { }); describe('smooth_fill_array', function() { - if(!test.smoothFill2D) return; var _; beforeAll(function() { jasmine.addMatchers(customMatchers); }); From 71b96f3f4db001e5a3f364993f4523310daa32c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 13 Apr 2017 16:34:47 -0400 Subject: [PATCH 2/2] add a few carpet interaction tests --- test/jasmine/tests/carpet_test.js | 100 +++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/test/jasmine/tests/carpet_test.js b/test/jasmine/tests/carpet_test.js index a7213c5bfe7..233b8c2dafb 100644 --- a/test/jasmine/tests/carpet_test.js +++ b/test/jasmine/tests/carpet_test.js @@ -1,11 +1,16 @@ +var Plotly = require('@lib/index'); var Plots = require('@src/plots/plots'); +var Lib = require('@src/lib'); var Carpet = require('@src/traces/carpet'); var smoothFill2D = require('@src/traces/carpet/smooth_fill_2d_array'); var smoothFill = require('@src/traces/carpet/smooth_fill_array'); +var d3 = require('d3'); var customMatchers = require('../assets/custom_matchers'); - +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var fail = require('../assets/fail_test'); describe('carpet supplyDefaults', function() { 'use strict'; @@ -414,3 +419,96 @@ describe('smooth_fill_array', function() { .toBeCloseToArray([0, 1, 2, 3]); }); }); + +describe('Test carpet interactions:', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(destroyGraphDiv); + + function countCarpets() { + return d3.select(gd).selectAll('.carpetlayer').selectAll('.trace').size(); + } + + function countContourTraces() { + return d3.select(gd).selectAll('.contour').size(); + } + + it('should restyle visible attribute properly', function(done) { + var mock = Lib.extendDeep({}, require('@mocks/cheater.json')); + + Plotly.plot(gd, mock) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(3); + + return Plotly.restyle(gd, 'visible', false, [2, 3]); + }) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(1); + + return Plotly.restyle(gd, 'visible', true); + }) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(3); + + return Plotly.restyle(gd, 'visible', false); + }) + .then(function() { + expect(countCarpets()).toEqual(0); + expect(countContourTraces()).toEqual(0); + }) + .catch(fail) + .then(done); + }); + + it('should add/delete trace properly', function(done) { + var mock = Lib.extendDeep({}, require('@mocks/cheater.json')); + var trace1 = Lib.extendDeep({}, mock.data[1]); + + Plotly.plot(gd, mock) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(3); + + return Plotly.deleteTraces(gd, [1]); + }) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(2); + + return Plotly.addTraces(gd, trace1); + }) + .then(function() { + expect(countCarpets()).toEqual(1); + expect(countContourTraces()).toEqual(3); + + return Plotly.deleteTraces(gd, [0, 1, 2, 3]); + }) + .then(function() { + expect(countCarpets()).toEqual(0); + expect(countContourTraces()).toEqual(0); + }) + .catch(fail) + .then(done); + }); + + it('should respond to relayout properly', function(done) { + var mock = Lib.extendDeep({}, require('@mocks/cheater.json')); + + Plotly.plot(gd, mock) + .then(function() { + return Plotly.relayout(gd, 'xaxis.range', [0, 1]); + }) + .then(function() { + return Plotly.relayout(gd, 'yaxis.range', [7, 8]); + }) + .catch(fail) + .then(done); + }); +});