UNPKG

1.85 kBJavaScriptView Raw
1var IperEdge, IperElement, IperGraph, IperNode, graph, id1, id2, id3, iper, nodeIds, should;
2
3iper = require('../index');
4
5should = require('should');
6
7IperEdge = iper.IperEdge;
8
9IperElement = iper.IperElement;
10
11IperGraph = iper.IperGraph;
12
13IperNode = iper.IperNode;
14
15graph = new IperGraph();
16
17id1 = graph.createNode(1);
18
19id2 = graph.createNode(2);
20
21id3 = graph.createNode(3);
22
23nodeIds = [id1, id2, id3];
24
25describe('IperEdge', function() {
26 describe('inheritance', function() {
27 return it('is an IperElement', function() {
28 var edge;
29 edge = new IperEdge(graph, nodeIds);
30 return edge.should.be.instanceOf(IperElement);
31 });
32 });
33 describe('constructor', function() {
34 it('has signature (graph, nodeIds)', function() {
35 var edge;
36 edge = new IperEdge(graph, nodeIds);
37 return edge.should.be.instanceOf(IperEdge);
38 });
39 return it('checks #nodeIds is an array of valid node ids', function() {
40 return (function() {
41 var edge;
42 return edge = new IperEdge(graph, [-1, -2]);
43 }).should.throwError();
44 });
45 });
46 describe('accessors', function() {
47 return describe('#nodeIds', function() {
48 return it('returns the #nodeIds', function() {
49 var edge;
50 edge = new IperEdge(graph, nodeIds);
51 return edge.nodeIds.should.eql(nodeIds);
52 });
53 });
54 });
55 return describe('methods', function() {
56 return describe('#remove()', function() {
57 return it('removes the edge from its graph', function() {
58 var edge, edgeId;
59 edge = new IperEdge(graph, nodeIds);
60 edgeId = edge.id;
61 edge.remove();
62 (function() {
63 return graph.getEdge(edgeId);
64 }).should.throwError();
65 return edge.should.exists;
66 });
67 });
68 });
69});