This commit is contained in:
Timo Hocker 2020-04-28 10:58:37 +02:00
parent 4328d3a78f
commit 6eb3dac397
2 changed files with 29 additions and 6 deletions

View File

@ -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;

View File

@ -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);
});