import test from 'ava'; import { Graph, GraphStyles, Color, NodeStyles } from '../lib'; const result = `digraph foo { subgraph cluster_foo_baz { color = #ff0000 style = bold subgraph cluster_foo_baz_nested { color = #808080 style = dotted subgraph cluster_foo_baz_nested_unnamed { color = #808080 style = dotted } } foo_baz_asd [label="asd"] foo_baz_test [style="bold", color="#808080"] } foo_baz [label="baz"] foo_foo [label="foo"] foo_foo -> foo_baz }`; test ('serialize', (t) => { const g = new Graph ('foo'); t.is (g.full_name, 'foo'); g.add_graph ((graph) => { graph.name = 'baz'; graph.add_node ('asd'); graph.add_node ((n) => { n.name = 'test'; n.style = NodeStyles.bold; n.color = Color.gray; }); // eslint-disable-next-line no-shadow graph.add_graph ((g) => { g.style = GraphStyles.dotted; g.color = Color.gray; g.name = 'nested'; // eslint-disable-next-line no-shadow, max-nested-callbacks g.add_graph ((g) => { g.style = GraphStyles.dotted; g.color = Color.gray; }); }); graph.style = GraphStyles.bold; graph.color = Color.red; }); const baz = g.add_node ('baz'); const foo = g.add_node ('foo'); g.add_edge (foo, baz); const serialized = g.toString (); t.is (serialized, result); });