Skip to content

Commit aa320ae

Browse files
justinharrellyotamberk
authored andcommitted
Additional changes for visjs#3500 (visjs#3525)
* Cleaned up some whitespace and added test for issue * Checking for proper removal, better comments and whitespace cleanup
1 parent e4efee6 commit aa320ae

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

lib/network/modules/EdgesHandler.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,8 @@ class EdgesHandler {
426426
* so the right place to do call this is in the handler for event `_dataUpdated`.
427427
*/
428428
_updateState() {
429-
430429
this._addMissingEdges();
431-
432430
this._removeInvalidEdges();
433-
434431
}
435432

436433
/**
@@ -464,19 +461,17 @@ class EdgesHandler {
464461
* @private
465462
*/
466463
_addMissingEdges() {
467-
468464
let edges = this.body.edges;
469465
let edgesData = this.body.data.edges;
470466
let addIds = [];
471467

472468
edgesData.forEach((edgeData, edgeId) => {
473469
let edge = edges[edgeId];
474-
if(edge===undefined)
475-
{
470+
if(edge===undefined) {
476471
addIds.push(edgeId);
477472
}
478473
});
479-
474+
480475
this.add(addIds,true);
481476
}
482477
}

test/Network.test.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,41 @@ describe('Edge', function () {
610610
assert.notEqual(edges[3].options.color.color, color); // Has own value
611611
assert.equal(edges[4].options.color.color, color);
612612
});
613+
614+
/**
615+
* Unit test for fix of #3500
616+
* Checking to make sure edges that become unconnected due to node removal get reconnected
617+
*/
618+
it('has reconnected edges', function () {
619+
var node1 = {id:1, label:"test1"};
620+
var node2 = {id:2, label:"test2"};
621+
var nodes = new vis.DataSet([node1, node2]);
622+
623+
var edge = {id:1, from: 1, to:2};
624+
var edges = new vis.DataSet([edge]);
625+
626+
var data = {
627+
nodes: nodes,
628+
edges: edges
629+
};
630+
631+
var container = document.getElementById('mynetwork');
632+
var network = new vis.Network(container, data);
633+
634+
//remove node causing edge to become disconnected
635+
nodes.remove(node2.id);
636+
637+
var foundEdge = network.body.edges[edge.id];
638+
639+
assert.ok(foundEdge===undefined, "edge is still in state cache");
640+
641+
//add node back reconnecting edge
642+
nodes.add(node2);
643+
644+
foundEdge = network.body.edges[edge.id];
645+
646+
assert.ok(foundEdge!==undefined, "edge is missing from state cache");
647+
});
613648
}); // Edge
614649

615650

0 commit comments

Comments
 (0)