From 6eb3dac397506a3f0e2710c408635118557cf62e Mon Sep 17 00:00:00 2001 From: Timo Hocker Date: Tue, 28 Apr 2020 10:58:37 +0200 Subject: [PATCH] fix --- lib/Graph.ts | 10 +++++----- test/Graph.ts | 25 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/lib/Graph.ts b/lib/Graph.ts index a61693a..4d2c53d 100644 --- a/lib/Graph.ts +++ b/lib/Graph.ts @@ -27,15 +27,15 @@ export class Graph extends Element { private get attributes (): Array<{name: string; value: string}> { const attributes = []; - if (this.color) + if (typeof this.color !== 'undefined') attributes.push ({ name: 'color', value: this.color.toString () }); - if (this.style) + if (typeof this.style !== 'undefined') attributes.push ({ name: 'style', value: this.style.toString () }); - if (this.overlap) + if (typeof this.overlap !== 'undefined') attributes.push ({ name: 'overlap', value: this.overlap.toString () }); - if (this.splines) + if (typeof this.splines !== 'undefined') attributes.push ({ name: 'splines', value: this.splines.toString () }); - if (this.layout) + if (typeof this.layout !== 'undefined') attributes.push ({ name: 'layout', value: this.layout.toString () }); return attributes; diff --git a/test/Graph.ts b/test/Graph.ts index 2826a56..4208017 100644 --- a/test/Graph.ts +++ b/test/Graph.ts @@ -1,5 +1,5 @@ import test from 'ava'; -import { Graph, GraphStyles, Color, NodeStyles } from '../lib'; +import { Graph, GraphStyles, Color, NodeStyles, GraphLayouts } from '../lib'; const result = `digraph foo { subgraph cluster_foo_baz { @@ -39,6 +39,14 @@ const non_directional = `graph foo { foo_bar_baz -- foo_foo }`; +const attributes = `digraph attr { + color = #000000 + style = bold + overlap = false + splines = true + layout = neato +}`; + test ('serialize', (t) => { const g = new Graph ('foo'); @@ -70,6 +78,7 @@ test ('serialize', (t) => { const baz = g.add_node ('baz'); const foo = g.add_node ('foo'); + g.add_edge (foo, baz); const serialized = g.toString (); @@ -79,6 +88,7 @@ test ('serialize', (t) => { test ('non directional', (t) => { const g = new Graph ('foo'); + g.directional = false; let n = ''; @@ -92,7 +102,20 @@ test ('non directional', (t) => { }); const f = g.add_node ('foo'); + g.add_edge (n, f); t.is (g.toString (), non_directional); }); + +test ('attributes', (t) => { + const g = new Graph ('attr'); + + g.layout = GraphLayouts.neato; + g.overlap = false; + g.splines = true; + g.color = Color.black; + g.style = GraphStyles.bold; + + t.is (g.toString (), attributes); +});