From ca6beb029dc105847f17ad6c9d374965872f965e Mon Sep 17 00:00:00 2001 From: wimrijnders Date: Thu, 20 Jul 2017 21:58:22 +0200 Subject: [PATCH] Add unit tests for Graph3D issue (#3260) * Add unit tests for Graph3D issue This adds a unit test for PR #3255 which fixes #3251. The unit test will fail without the PR merged. **NOTE:** This also adds module `canvas`, required for the unit test. This module proved to be quite fickly to install properly. During reviewing, please pay special attention to the proper installation of this modul. I.e. do following to test: ``` > npm install # If no errors, continue > npm test /tests/Graph3D.test.js # Run unit test isolated ``` * Fix for travis-cl * Add giflib to travis test definition * Add libgif to travis test definition - take 2 * Proper setup and teardown for jsdom-global * Minor fixes and cleanup --- test/Graph3d.test.js | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/Graph3d.test.js diff --git a/test/Graph3d.test.js b/test/Graph3d.test.js new file mode 100644 index 000000000..1da5c856c --- /dev/null +++ b/test/Graph3d.test.js @@ -0,0 +1,47 @@ +var assert = require('assert'); +var jsdom_global = require('jsdom-global'); +var vis = require('../dist/vis'); +var Graph3d = vis.Graph3d; + + +describe('Graph3d', function () { + + before(function() { + //console.log('before!'); + this.jsdom_global = jsdom_global( + "
", + { skipWindowCheck: true} + ); + this.container = document.getElementById('mynetwork'); + }); + + it('accepts new option values on defined instance', function () { + assert(this.container !== null, 'Container div not found'); + + var BAR_STYLE = 0; // from var STYLE in Settings.js + var DOT_STYLE = 3; // idem + + var data = [ + {x:0, y:0, z: 10}, + {x:0, y:1, z: 20}, + {x:1, y:0, z: 30}, + {x:1, y:1, z: 40}, + ]; + + var options = { + style: 'dot' + }; + + var graph = new vis.Graph3d(this.container, data, options); + assert.equal(graph.style, DOT_STYLE, "Style not set to expected 'dot'"); + + graph.setOptions({ style: 'bar'}); // Call should just work, no exception thrown + assert.equal(graph.style, BAR_STYLE, "Style not set to expected 'bar'"); + }); + + + after(function() { + //console.log('after!'); + this.jsdom_global(); + }); +});