mermaid
Version:
Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.
1,649 lines • 250 kB
HTML
<!DOCTYPE html>
<html>
<head>
<title>flow.spec.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" media="all" href="../../../../doc-style.css" />
<script src="../../../../doc-filelist.js"></script>
<script>
var relativeDir = "../../../../", thisFile = "Users/knut/Documents/source/mermaid/src/diagrams/flowchart/parser/flow.spec.js", defaultSidebar = true;
</script>
<script src="../../../../doc-script.js"></script>
<script src="../../../../mermaid.js"></script>
<link rel="stylesheet" href="../../../../mermaid.css" />
</head>
<body>
<div id="sidebar_wrapper">
<div id="sidebar_switch">
<span class="tree">Files</span>
<span class="headings">Headings</span>
</div>
<div id="tree"></div>
<div id="headings">
<div class="heading h1">
<a href="#flow.spec.js">flow.spec.js</a>
</div>
</div>
</div>
<div id="sidebar-toggle"></div>
<div id="container"><div class="background highlight"></div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="docs">
<div class="pilwrap" id="flow.spec.js">
<h1>
<a href="#flow.spec.js" name="flow.spec.js" class="pilcrow">¶</a>flow.spec.js
</h1>
</div>
</td>
<td class="code highlight"></td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-1" id="section-1">¶</a>
</div>
<div class="dox">
<div class="summary"><p>Created by knut on 14-11-03.</p>
</div>
<div class="body">
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre><span class="kd">var</span> <span class="nx">graph</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../graphDb'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">flow</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./flow'</span><span class="p">);</span>
<span class="nx">describe</span><span class="p">(</span><span class="s1">'when parsing '</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">beforeEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../graphDb'</span><span class="p">);</span>
<span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-2" id="section-2">¶</a>
</div>
<div class="dox">
<div class="summary"><p>flow.parser.parse.parseError= function parseError(str, hash) {
log.debugconsole.log(str);
} </p>
</div>
<div class="body">
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a nodes and edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\nA-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle angle bracket '</span><span class="o">></span><span class="s1">' as direction LR'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph >;A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">direction</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">direction</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'LR'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle angle bracket '</span><span class="o"><</span><span class="s1">' as direction RL'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph <;A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">direction</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">direction</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'RL'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle caret '</span><span class="o">^</span><span class="s1">' as direction BT'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph ^;A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">direction</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">direction</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'BT'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle lower-case \'v\' as direction TB'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph v;A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">direction</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">direction</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'TB'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a nodes and edges and a space between link and node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A --> B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a nodes and edges, a space between link and node and each line ending without semicolon'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA --> B\n style e red'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle statements ending without semicolon'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nB-->C'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'C'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a comments'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n%% CComment\n A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle comments a at the start'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'%% Comment\ngraph TD;\n A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle comments at the end'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n A-->B\n %% Comment at the find\n'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle comments at the end no trailing newline'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n A-->B\n%% Commento'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle comments at the end many trailing newlines'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n A-->B\n%% Commento\n\n\n'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle no trailing newlines'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n A-->B'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle many trailing newlines'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n A-->B\n\n'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a comments with blank rows in-between'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n\n\n %% Comment\n A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a comments mermaid flowchart code in them'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n\n\n %% Test od>Odd shape]-->|Two line<br>edge comment|ro;\n A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle a trailing whitespaces after statememnts'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;\n\n\n %% Comment\n A-->B; \n B-->C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle open ended edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A---B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_open'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle cross ended edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle open ended edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--oB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_circle'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle subgraphs'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->B;subgraph myTitle;c-->d;end;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle subgraphs'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nsubgraph myTitle\n\n c-->d \nend\n'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle nested subgraphs'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">str</span> <span class="o">=</span> <span class="s1">'graph TD\n'</span> <span class="o">+</span>
<span class="s1">'A-->B\n'</span> <span class="o">+</span>
<span class="s1">'subgraph myTitle\n\n'</span> <span class="o">+</span>
<span class="s1">' c-->d \n\n'</span> <span class="o">+</span>
<span class="s1">' subgraph inner\n\n e-->f \n end \n\n'</span> <span class="o">+</span>
<span class="s1">' subgraph inner\n\n h-->i \n end \n\n'</span> <span class="o">+</span>
<span class="s1">'end\n'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">str</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle subgraphs'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nsubgraph myTitle\nc-->d\nend;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle subgraphs'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nsubgraph myTitle\nc-- text -->d\nd-->e\n end;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle classDefs with style in classes'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nclassDef exClass font-style:bold;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle classDefs with % in classes'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\nA-->B\nclassDef exClass fill:#f96,stroke:#333,stroke-width:4px,font-size:50%,font-style:bold;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle style definitons with more then 1 digit in a row'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD\n'</span> <span class="o">+</span>
<span class="s1">'A-->B1\n'</span> <span class="o">+</span>
<span class="s1">'A-->B2\n'</span> <span class="o">+</span>
<span class="s1">'A-->B3\n'</span> <span class="o">+</span>
<span class="s1">'A-->B4\n'</span> <span class="o">+</span>
<span class="s1">'A-->B5\n'</span> <span class="o">+</span>
<span class="s1">'A-->B6\n'</span> <span class="o">+</span>
<span class="s1">'A-->B7\n'</span> <span class="o">+</span>
<span class="s1">'A-->B8\n'</span> <span class="o">+</span>
<span class="s1">'A-->B9\n'</span> <span class="o">+</span>
<span class="s1">'A-->B10\n'</span> <span class="o">+</span>
<span class="s1">'A-->B11\n'</span> <span class="o">+</span>
<span class="s1">'linkStyle 10 stroke-width:1px;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">describe</span><span class="p">(</span><span class="s2">"it should handle text on edges"</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text without space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|textNoSpace|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle with space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including space|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text with /'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text with / should work|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text with / should work'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle space and space between vertices and link'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A --x|textNoSpace| B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and CAPS'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including CAPS space|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and dir'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including URL space|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including URL space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and send'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--text including URL space and send-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including URL space and send'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and send'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including URL space and send -->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including URL space and send'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and dir (TD)'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including R TD space|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including R TD space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle `'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including `|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including `'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle v in node ids only v'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-3" id="section-3">¶</a>
</div>
<p>only v</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--xv(my text);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'v'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'my text'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle v in node ids v at end'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-4" id="section-4">¶</a>
</div>
<p>v at end</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--xcsv(my text);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'csv'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'my text'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle v in node ids v in middle'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-5" id="section-5">¶</a>
</div>
<p>v in middle</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--xava(my text);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'ava'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'my text'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle v in node ids, v at start'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-6" id="section-6">¶</a>
</div>
<p>v at start</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--xva(my text);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'va'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'my text'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle keywords'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--x|text including graph space|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including graph space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle keywords'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;V-->a[v]'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'v'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle keywords'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;V-->a[v]'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'v'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle quoted text'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;V-- "test string()" -->a[v]'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'test string()'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nx">describe</span><span class="p">(</span><span class="s2">"it should handle new line type notation"</span><span class="p">,</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle regular lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'normal'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle dotted lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-.->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'dotted'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle dotted lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A==>B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'thick'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text on lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- test text with == -->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'normal'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text on lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-. test text with == .->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'dotted'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text on lines'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A== test text with - ==>B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">stroke</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'thick'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nx">describe</span><span class="p">(</span><span class="s2">"it should handle text on edges using the new notation"</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text without space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- textNoSpace --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text with multiple leading space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- textNoSpace --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle with space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including space --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle text with /'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A -- text with / should work --x B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text with / should work'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle space and space between vertices and link'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A -- textNoSpace --x B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and CAPS'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including CAPS space --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and dir'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including URL space --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including URL space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle space and dir (TD)'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including R TD space --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_cross'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including R TD space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle keywords'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including graph space and v --xB;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including graph space and v'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle keywords'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including graph space and v --xB[blav]'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including graph space and v'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">xit</span><span class="p">(</span><span class="s1">'should handle text on open links'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-- text including graph space --B'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'text including graph space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle multi-line text'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A--o|text space|B;\n B-->|more text with space|C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow_circle'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'arrow'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'C'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-7" id="section-7">¶</a>
</div>
<p>expect(edges[0].text).toBe('text space');</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'C'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'more text with space'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle multiple edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A---|This is the 123 s text|B;\nA---|This is the second edge|B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'This is the 123 s text'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">start</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">end</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'This is the second edge'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in vertices with space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A[chimpansen hoppar]-->C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'square'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'chimpansen hoppar'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in vertices with space with spaces between vertices and link'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A[chimpansen hoppar] --> C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'square'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'chimpansen hoppar'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle quoted text in vertices '</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A["chimpansen hoppar ()[]"] --> C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'square'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'chimpansen hoppar ()[]'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in circle vertices with space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A((chimpansen hoppar))-->C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'circle'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'chimpansen hoppar'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in diamond vertices with space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A(chimpansen hoppar)-->C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'chimpansen hoppar'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in with ?'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A(?)-->|?|C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'?'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'?'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in with éèêàçô'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A(éèêàçô)-->|éèêàçô|C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'éèêàçô'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'éèêàçô'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle text in with ,.?!+-*'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A(,.?!+-*)-->|,.?!+-*|C;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">',.?!+-*'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">',.?!+-*'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">describe</span><span class="p">(</span><span class="s2">"it should handle text in vertices, "</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle space'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(Chimpansen hoppar);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'Chimpansen hoppar'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle åäö and minus'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C{Chimpansen hoppar åäö-ÅÄÖ};'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'diamond'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'Chimpansen hoppar åäö-ÅÄÖ'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle with åäö, minus and space and br'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(Chimpansen hoppar åäö <br> - ÅÄÖ);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'Chimpansen hoppar åäö <br> - ÅÄÖ'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">xit</span><span class="p">(</span><span class="s1">'it should handle åäö, minus and space and br'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD; A[Object&#40;foo,bar&#41;]-->B(Thing);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">' A[Object&#40;foo,bar&#41;]-->B(Thing);'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle unicode chars'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(Начало);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'Начало'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle backslask'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(c:\\windows);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'c:\\windows'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle CAPS'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(some CAPS);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'some CAPS'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should handle directions'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A-->C(some URL);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'C'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'some URL'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-8" id="section-8">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single square node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-9" id="section-9">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a[A];'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'square'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single round square node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-10" id="section-10">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a[A];'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'square'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single circle node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-11" id="section-11">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a((A));'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'circle'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single round node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-12" id="section-12">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a(A);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single odd node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-13" id="section-13">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a>A];'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'odd'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single diamond node'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-14" id="section-14">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a{A};'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'diamond'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single diamond node with html in it'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-15" id="section-15">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a{A <br> end};'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'diamond'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A <br> end'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single round node with html in it'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-16" id="section-16">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a(A <br> end);'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">type</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'round'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A <br> end'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single node with alphanumerics starting on a char'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-17" id="section-17">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;id1;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'id1'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single node with alphanumerics starting on a num'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-18" id="section-18">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;1id;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'1id'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle a single node with alphanumerics containing a minus sign'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-19" id="section-19">¶</a>
</div>
<p>Silly but syntactically correct</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;i-d;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'i-d'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="p">});</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-20" id="section-20">¶</a>
</div>
<p>log.debug(flow.parser.parse('graph TD;style Q background:#fff;'));</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle styles for vertices'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;style Q background:#fff;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">style</span> <span class="o">=</span> <span class="nx">vert</span><span class="p">[</span><span class="s1">'Q'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'Q'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'Q'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#fff'</span><span class="p">);</span>
<span class="p">});</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-21" id="section-21">¶</a>
</div>
<p>log.debug(flow.parser.parse('graph TD;style Q background:#fff;'));</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle styles for edges'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;a-->b;\nstyle #0 stroke: #f66;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">edges</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle multiple styles for a vortex'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;style R background:#fff,border:1px solid red;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'R'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'R'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#fff'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'R'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle multiple styles in a graph'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;style S background:#aaa;\nstyle T background:#bbb,border:1px solid red;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'S'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'S'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#aaa'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle styles and graph definitons in a graph'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;S-->T;\nstyle S background:#aaa;\nstyle T background:#bbb,border:1px solid red;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'S'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'S'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#aaa'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should handle styles and graph definitons in a graph'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;style T background:#bbb,border:1px solid red;'</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-22" id="section-22">¶</a>
</div>
<p>var res = flow.parser.parse('graph TD;style T background: #bbb;');</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'T'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">describe</span><span class="p">(</span><span class="s1">'special characters should be be handled.'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">charTest</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="kr">char</span><span class="p">){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;A('</span><span class="o">+</span><span class="kr">char</span><span class="o">+</span><span class="s1">')-->B;'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">vert</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">edges</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getEdges</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'A'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'B'</span><span class="p">].</span><span class="nx">id</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'B'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vert</span><span class="p">[</span><span class="s1">'A'</span><span class="p">].</span><span class="nx">text</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="kr">char</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'.\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'.'</span><span class="p">);</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'Start 103a.a1'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse text containing \'_\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'_'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \':\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">':'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \',\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">','</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse text containing \'-\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'a-b'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'+\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'+'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'*\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'*'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'<\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'<'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'>\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'>'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'it should be able to parse a \'=\''</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="nx">charTest</span><span class="p">(</span><span class="s1">'='</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should be possible to declare a class'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;classDef exClass background:#bbb,border:1px solid red;'</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-23" id="section-23">¶</a>
</div>
<p>var res = flow.parser.parse('graph TD;style T background: #bbb;');</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getClasses</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should be possible to declare a class with a dot in the style'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;classDef exClass background:#bbb,border:1.5px solid red;'</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-24" id="section-24">¶</a>
</div>
<p>var res = flow.parser.parse('graph TD;style T background: #bbb;');</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getClasses</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1.5px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should be possible to declare a class with a space in the style'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="s1">'graph TD;classDef exClass background: #bbb,border:1.5px solid red;'</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-25" id="section-25">¶</a>
</div>
<p>var res = flow.parser.parse('graph TD;style T background : #bbb;');</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getClasses</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background: #bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1.5px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should be possible to apply a class to a vertex'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">statement</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'graph TD;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'classDef exClass background:#bbb,border:1px solid red;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'a-->b;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'class a exClass;'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">statement</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getClasses</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">it</span><span class="p">(</span><span class="s1">'should be possible to apply a class to a comma separated list of vertices'</span><span class="p">,</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">statement</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'graph TD;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'classDef exClass background:#bbb,border:1px solid red;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'a-->b;'</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span>
<span class="nx">statement</span> <span class="o">=</span> <span class="nx">statement</span> <span class="o">+</span> <span class="s1">'class a,b exClass;'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">statement</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getClasses</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">vertices</span> <span class="o">=</span> <span class="nx">flow</span><span class="p">.</span><span class="nx">parser</span><span class="p">.</span><span class="nx">yy</span><span class="p">.</span><span class="nx">getVertices</span><span class="p">();</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">.</span><span class="nx">length</span><span class="p">).</span><span class="nx">toBe</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'background:#bbb'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="s1">'exClass'</span><span class="p">].</span><span class="nx">styles</span><span class="p">[</span><span class="mi">1</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'border:1px solid red'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vertices</span><span class="p">[</span><span class="s1">'a'</span><span class="p">].</span><span class="nx">classes</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'exClass'</span><span class="p">);</span>
<span class="nx">expect</span><span class="p">(</span><span class="nx">vertices</span><span class="p">[</span><span class="s1">'b'</span><span class="p">].</span><span class="nx">classes</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">toBe</span><span class="p">(</span><span class="s1">'exClass'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
</pre></div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>