UNPKG

mermaid

Version:

Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.

1,649 lines • 250 kB
<!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">&#182;</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">&#182;</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">&#39;../graphDb&#39;</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">&#39;./flow&#39;</span><span class="p">);</span>

<span class="nx">describe</span><span class="p">(</span><span class="s1">&#39;when parsing &#39;</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">&#39;../graphDb&#39;</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">&#182;</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">&#39;should handle a nodes and edges&#39;</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">&#39;graph TD;\nA--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle angle bracket &#39;</span><span class="o">&gt;</span><span class="s1">&#39; as direction LR&#39;</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">&#39;graph &gt;;A--&gt;B;&#39;</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">&#39;LR&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle angle bracket &#39;</span><span class="o">&lt;</span><span class="s1">&#39; as direction RL&#39;</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">&#39;graph &lt;;A--&gt;B;&#39;</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">&#39;RL&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>


    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle caret &#39;</span><span class="o">^</span><span class="s1">&#39; as direction BT&#39;</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">&#39;graph ^;A--&gt;B;&#39;</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">&#39;BT&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>


    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle lower-case \&#39;v\&#39; as direction TB&#39;</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">&#39;graph v;A--&gt;B;&#39;</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">&#39;TB&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a nodes and edges and a space between link and node&#39;</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">&#39;graph TD;A --&gt; B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a nodes and edges, a space between link and node and each line ending without semicolon&#39;</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">&#39;graph TD\nA --&gt; B\n style e red&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle statements ending without semicolon&#39;</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">&#39;graph TD\nA--&gt;B\nB--&gt;C&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;C&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a comments&#39;</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">&#39;graph TD;\n%% CComment\n A--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle comments a at the start&#39;</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">&#39;%% Comment\ngraph TD;\n A--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle comments at the end&#39;</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">&#39;graph TD;\n A--&gt;B\n %% Comment at the find\n&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle comments at the end no trailing newline&#39;</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">&#39;graph TD;\n A--&gt;B\n%% Commento&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle comments at the end many trailing newlines&#39;</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">&#39;graph TD;\n A--&gt;B\n%% Commento\n\n\n&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle no trailing newlines&#39;</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">&#39;graph TD;\n A--&gt;B&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle many trailing newlines&#39;</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">&#39;graph TD;\n A--&gt;B\n\n&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a comments with blank rows in-between&#39;</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">&#39;graph TD;\n\n\n %% Comment\n A--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a comments mermaid flowchart code in them&#39;</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">&#39;graph TD;\n\n\n %% Test od&gt;Odd shape]--&gt;|Two line&lt;br&gt;edge comment|ro;\n A--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle a trailing whitespaces after statememnts&#39;</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">&#39;graph TD;\n\n\n %% Comment\n A--&gt;B; \n B--&gt;C;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;arrow&#39;</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">&#39;&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle open ended edges&#39;</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">&#39;graph TD;A---B;&#39;</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">&#39;arrow_open&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle cross ended edges&#39;</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">&#39;graph TD;A--xB;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle open ended edges&#39;</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">&#39;graph TD;A--oB;&#39;</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">&#39;arrow_circle&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle subgraphs&#39;</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">&#39;graph TD;A--&gt;B;subgraph myTitle;c--&gt;d;end;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle subgraphs&#39;</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">&#39;graph TD\nA--&gt;B\nsubgraph myTitle\n\n c--&gt;d \nend\n&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle nested subgraphs&#39;</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">&#39;graph TD\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39;A--&gt;B\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39;subgraph myTitle\n\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39; c--&gt;d \n\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39; subgraph inner\n\n   e--&gt;f \n end \n\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39; subgraph inner\n\n   h--&gt;i \n end \n\n&#39;</span> <span class="o">+</span>
            <span class="s1">&#39;end\n&#39;</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">&#39;should handle subgraphs&#39;</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">&#39;graph TD\nA--&gt;B\nsubgraph myTitle\nc--&gt;d\nend;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle subgraphs&#39;</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">&#39;graph TD\nA--&gt;B\nsubgraph myTitle\nc-- text --&gt;d\nd--&gt;e\n end;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle classDefs with style in classes&#39;</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">&#39;graph TD\nA--&gt;B\nclassDef exClass font-style:bold;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle classDefs with % in classes&#39;</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">&#39;graph TD\nA--&gt;B\nclassDef exClass fill:#f96,stroke:#333,stroke-width:4px,font-size:50%,font-style:bold;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle style definitons with more then 1 digit in a row&#39;</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">&#39;graph TD\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B1\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B2\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B3\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B4\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B5\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B6\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B7\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B8\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B9\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B10\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;A--&gt;B11\n&#39;</span> <span class="o">+</span>
        <span class="s1">&#39;linkStyle 10 stroke-width:1px;&#39;</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">&#39;arrow&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">describe</span><span class="p">(</span><span class="s2">&quot;it should handle text on edges&quot;</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">&#39;it should handle text without space&#39;</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">&#39;graph TD;A--x|textNoSpace|B;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle  with space&#39;</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">&#39;graph TD;A--x|text including space|B;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text with /&#39;</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">&#39;graph TD;A--x|text with / should work|B;&#39;</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">&#39;text with / should work&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle space and space between vertices and link&#39;</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">&#39;graph TD;A --x|textNoSpace| B;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and CAPS&#39;</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">&#39;graph TD;A--x|text including CAPS space|B;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and dir&#39;</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">&#39;graph TD;A--x|text including URL space|B;&#39;</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">&#39;arrow_cross&#39;</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">&#39;text including URL space&#39;</span><span class="p">);</span>

        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and send&#39;</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">&#39;graph TD;A--text including URL space and send--&gt;B;&#39;</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">&#39;arrow&#39;</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">&#39;text including URL space and send&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and send&#39;</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">&#39;graph TD;A-- text including URL space and send --&gt;B;&#39;</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">&#39;arrow&#39;</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">&#39;text including URL space and send&#39;</span><span class="p">);</span>

        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and dir (TD)&#39;</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">&#39;graph TD;A--x|text including R TD space|B;&#39;</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">&#39;arrow_cross&#39;</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">&#39;text including R TD space&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle `&#39;</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">&#39;graph TD;A--x|text including `|B;&#39;</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">&#39;arrow_cross&#39;</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">&#39;text including `&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle v in node ids only v&#39;</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">&#182;</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">&#39;graph TD;A--xv(my text);&#39;</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">&#39;arrow_cross&#39;</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">&#39;v&#39;</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">&#39;my text&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle v in node ids v at end&#39;</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">&#182;</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">&#39;graph TD;A--xcsv(my text);&#39;</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">&#39;arrow_cross&#39;</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">&#39;csv&#39;</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">&#39;my text&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle v in node ids v in middle&#39;</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">&#182;</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">&#39;graph TD;A--xava(my text);&#39;</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">&#39;arrow_cross&#39;</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">&#39;ava&#39;</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">&#39;my text&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle v in node ids, v at start&#39;</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">&#182;</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">&#39;graph TD;A--xva(my text);&#39;</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">&#39;arrow_cross&#39;</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">&#39;va&#39;</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">&#39;my text&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle keywords&#39;</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">&#39;graph TD;A--x|text including graph space|B;&#39;</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">&#39;text including graph space&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle keywords&#39;</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">&#39;graph TD;V--&gt;a[v]&#39;</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">&#39;a&#39;</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">&#39;v&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle keywords&#39;</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">&#39;graph TD;V--&gt;a[v]&#39;</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">&#39;a&#39;</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">&#39;v&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle quoted text&#39;</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">&#39;graph TD;V-- &quot;test string()&quot; --&gt;a[v]&#39;</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">&#39;test string()&#39;</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">&quot;it should handle new line type notation&quot;</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">&#39;it should handle regular lines&#39;</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">&#39;graph TD;A--&gt;B;&#39;</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">&#39;normal&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle dotted lines&#39;</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">&#39;graph TD;A-.-&gt;B;&#39;</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">&#39;dotted&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle dotted lines&#39;</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">&#39;graph TD;A==&gt;B;&#39;</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">&#39;thick&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text on lines&#39;</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">&#39;graph TD;A-- test text with == --&gt;B;&#39;</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">&#39;normal&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text on lines&#39;</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">&#39;graph TD;A-. test text with == .-&gt;B;&#39;</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">&#39;dotted&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text on lines&#39;</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">&#39;graph TD;A== test text with - ==&gt;B;&#39;</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">&#39;thick&#39;</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">&quot;it should handle text on edges using the new notation&quot;</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">&#39;it should handle text without space&#39;</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">&#39;graph TD;A-- textNoSpace --xB;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text with multiple leading space&#39;</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">&#39;graph TD;A--    textNoSpace --xB;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>


        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle  with space&#39;</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">&#39;graph TD;A-- text including space --xB;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle text with /&#39;</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">&#39;graph TD;A -- text with / should work --x B;&#39;</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">&#39;text with / should work&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle space and space between vertices and link&#39;</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">&#39;graph TD;A -- textNoSpace --x B;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and CAPS&#39;</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">&#39;graph TD;A-- text including CAPS space --xB;&#39;</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">&#39;arrow_cross&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and dir&#39;</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">&#39;graph TD;A-- text including URL space --xB;&#39;</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">&#39;arrow_cross&#39;</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">&#39;text including URL space&#39;</span><span class="p">);</span>

        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle space and dir (TD)&#39;</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">&#39;graph TD;A-- text including R TD space --xB;&#39;</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">&#39;arrow_cross&#39;</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">&#39;text including R TD space&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle keywords&#39;</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">&#39;graph TD;A-- text including graph space and v --xB;&#39;</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">&#39;text including graph space and v&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle keywords&#39;</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">&#39;graph TD;A-- text including graph space and v --xB[blav]&#39;</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">&#39;text including graph space and v&#39;</span><span class="p">);</span>

        <span class="p">});</span>
        <span class="nx">xit</span><span class="p">(</span><span class="s1">&#39;should handle text on open links&#39;</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">&#39;graph TD;A-- text including graph space --B&#39;</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">&#39;text including graph space&#39;</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">&#39;should handle multi-line text&#39;</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">&#39;graph TD;A--o|text space|B;\n B--&gt;|more text with space|C;&#39;</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">&#39;arrow_circle&#39;</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">&#39;arrow&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;C&#39;</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">&#39;C&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#182;</a>
</div>
<p>expect(edges[0].text).toBe(&#39;text space&#39;);</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">&#39;B&#39;</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">&#39;C&#39;</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">&#39;more text with space&#39;</span><span class="p">);</span>
    <span class="p">});</span>


    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle multiple edges&#39;</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">&#39;graph TD;A---|This is the 123 s text|B;\nA---|This is the second edge|B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;This is the 123 s text&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;This is the second edge&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in vertices with space&#39;</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">&#39;graph TD;A[chimpansen hoppar]--&gt;C;&#39;</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">&#39;A&#39;</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">&#39;square&#39;</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">&#39;A&#39;</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">&#39;chimpansen hoppar&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in vertices with space with spaces between vertices and link&#39;</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">&#39;graph TD;A[chimpansen hoppar] --&gt; C;&#39;</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">&#39;A&#39;</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">&#39;square&#39;</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">&#39;A&#39;</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">&#39;chimpansen hoppar&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle quoted text in vertices &#39;</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">&#39;graph TD;A[&quot;chimpansen hoppar ()[]&quot;] --&gt; C;&#39;</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">&#39;A&#39;</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">&#39;square&#39;</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">&#39;A&#39;</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">&#39;chimpansen hoppar ()[]&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in circle vertices with space&#39;</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">&#39;graph TD;A((chimpansen hoppar))--&gt;C;&#39;</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">&#39;A&#39;</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">&#39;circle&#39;</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">&#39;A&#39;</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">&#39;chimpansen hoppar&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in diamond vertices with space&#39;</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">&#39;graph TD;A(chimpansen hoppar)--&gt;C;&#39;</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">&#39;A&#39;</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">&#39;round&#39;</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">&#39;A&#39;</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">&#39;chimpansen hoppar&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in with ?&#39;</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">&#39;graph TD;A(?)--&gt;|?|C;&#39;</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">&#39;A&#39;</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">&#39;?&#39;</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">&#39;?&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in with éèêàçô&#39;</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">&#39;graph TD;A(éèêàçô)--&gt;|éèêàçô|C;&#39;</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">&#39;A&#39;</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">&#39;éèêàçô&#39;</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">&#39;éèêàçô&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle text in with ,.?!+-*&#39;</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">&#39;graph TD;A(,.?!+-*)--&gt;|,.?!+-*|C;&#39;</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">&#39;A&#39;</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">&#39;,.?!+-*&#39;</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">&#39;,.?!+-*&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">describe</span><span class="p">(</span><span class="s2">&quot;it should handle text in vertices, &quot;</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">&#39;it should handle space&#39;</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">&#39;graph TD;A--&gt;C(Chimpansen hoppar);&#39;</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">&#39;C&#39;</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">&#39;round&#39;</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">&#39;C&#39;</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">&#39;Chimpansen hoppar&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle åäö and minus&#39;</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">&#39;graph TD;A--&gt;C{Chimpansen hoppar åäö-ÅÄÖ};&#39;</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">&#39;C&#39;</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">&#39;diamond&#39;</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">&#39;C&#39;</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">&#39;Chimpansen hoppar åäö-ÅÄÖ&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle with åäö, minus and space and br&#39;</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">&#39;graph TD;A--&gt;C(Chimpansen hoppar åäö  &lt;br&gt; -  ÅÄÖ);&#39;</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">&#39;C&#39;</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">&#39;round&#39;</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">&#39;C&#39;</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">&#39;Chimpansen hoppar åäö  &lt;br&gt; -  ÅÄÖ&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">xit</span><span class="p">(</span><span class="s1">&#39;it should handle åäö, minus and space and br&#39;</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">&#39;graph TD; A[Object&amp;#40;foo,bar&amp;#41;]--&gt;B(Thing);&#39;</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">&#39;C&#39;</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">&#39;round&#39;</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">&#39;C&#39;</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">&#39; A[Object&amp;#40;foo,bar&amp;#41;]--&gt;B(Thing);&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle unicode chars&#39;</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">&#39;graph TD;A--&gt;C(Начало);&#39;</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">&#39;C&#39;</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">&#39;Начало&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle backslask&#39;</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">&#39;graph TD;A--&gt;C(c:\\windows);&#39;</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">&#39;C&#39;</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">&#39;c:\\windows&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle CAPS&#39;</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">&#39;graph TD;A--&gt;C(some CAPS);&#39;</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">&#39;C&#39;</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">&#39;round&#39;</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">&#39;C&#39;</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">&#39;some CAPS&#39;</span><span class="p">);</span>
        <span class="p">});</span>
        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should handle directions&#39;</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">&#39;graph TD;A--&gt;C(some URL);&#39;</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">&#39;C&#39;</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">&#39;round&#39;</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">&#39;C&#39;</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">&#39;some URL&#39;</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">&#39;should handle a single node&#39;</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">&#182;</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">&#39;graph TD;A;&#39;</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">&#39;A&#39;</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">&#39;should handle a single square node&#39;</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">&#182;</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">&#39;graph TD;a[A];&#39;</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">&#39;a&#39;</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">&#39;a&#39;</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">&#39;square&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single round square node&#39;</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">&#182;</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">&#39;graph TD;a[A];&#39;</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">&#39;a&#39;</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">&#39;a&#39;</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">&#39;square&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single circle node&#39;</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">&#182;</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">&#39;graph TD;a((A));&#39;</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">&#39;a&#39;</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">&#39;circle&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single round node&#39;</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">&#182;</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">&#39;graph TD;a(A);&#39;</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">&#39;a&#39;</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">&#39;round&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single odd node&#39;</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">&#182;</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">&#39;graph TD;a&gt;A];&#39;</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">&#39;a&#39;</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">&#39;odd&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single diamond node&#39;</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">&#182;</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">&#39;graph TD;a{A};&#39;</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">&#39;a&#39;</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">&#39;diamond&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single diamond node with html in it&#39;</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">&#182;</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">&#39;graph TD;a{A &lt;br&gt; end};&#39;</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">&#39;a&#39;</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">&#39;diamond&#39;</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">&#39;a&#39;</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">&#39;A &lt;br&gt; end&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single round node with html in it&#39;</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">&#182;</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">&#39;graph TD;a(A &lt;br&gt; end);&#39;</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">&#39;a&#39;</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">&#39;round&#39;</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">&#39;a&#39;</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">&#39;A &lt;br&gt; end&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle a single node with alphanumerics starting on a char&#39;</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">&#182;</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">&#39;graph TD;id1;&#39;</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">&#39;id1&#39;</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">&#39;should handle a single node with alphanumerics starting on a num&#39;</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">&#182;</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">&#39;graph TD;1id;&#39;</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">&#39;1id&#39;</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">&#39;should handle a single node with alphanumerics containing a minus sign&#39;</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">&#182;</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">&#39;graph TD;i-d;&#39;</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">&#39;i-d&#39;</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">&#182;</a>
</div>
<p>log.debug(flow.parser.parse(&#39;graph TD;style Q background:#fff;&#39;));</p>

        </td>
        <td class="code highlight"><div class="highlight"><pre>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle styles for vertices&#39;</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">&#39;graph TD;style Q background:#fff;&#39;</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">&#39;Q&#39;</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">&#39;Q&#39;</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">&#39;Q&#39;</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">&#39;background:#fff&#39;</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">&#182;</a>
</div>
<p>log.debug(flow.parser.parse(&#39;graph TD;style Q background:#fff;&#39;));</p>

        </td>
        <td class="code highlight"><div class="highlight"><pre>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle styles for edges&#39;</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">&#39;graph TD;a--&gt;b;\nstyle #0 stroke: #f66;&#39;</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">&#39;should handle multiple styles for a vortex&#39;</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">&#39;graph TD;style R background:#fff,border:1px solid red;&#39;</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">&#39;R&#39;</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">&#39;R&#39;</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">&#39;background:#fff&#39;</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">&#39;R&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle multiple styles in a graph&#39;</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">&#39;graph TD;style S background:#aaa;\nstyle T background:#bbb,border:1px solid red;&#39;</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">&#39;S&#39;</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">&#39;T&#39;</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">&#39;S&#39;</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">&#39;background:#aaa&#39;</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">&#39;T&#39;</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">&#39;background:#bbb&#39;</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">&#39;T&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle styles and graph definitons in a graph&#39;</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">&#39;graph TD;S--&gt;T;\nstyle S background:#aaa;\nstyle T background:#bbb,border:1px solid red;&#39;</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">&#39;S&#39;</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">&#39;T&#39;</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">&#39;S&#39;</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">&#39;background:#aaa&#39;</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">&#39;T&#39;</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">&#39;background:#bbb&#39;</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">&#39;T&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should handle styles and graph definitons in a graph&#39;</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">&#39;graph TD;style T background:#bbb,border:1px solid red;&#39;</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">&#182;</a>
</div>
<p>var res = flow.parser.parse(&#39;graph TD;style T background: #bbb;&#39;);</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">&#39;T&#39;</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">&#39;T&#39;</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">&#39;background:#bbb&#39;</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">&#39;T&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">describe</span><span class="p">(</span><span class="s1">&#39;special characters should be be handled.&#39;</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">&#39;graph TD;A(&#39;</span><span class="o">+</span><span class="kr">char</span><span class="o">+</span><span class="s1">&#39;)--&gt;B;&#39;</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">&#39;A&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;it should be able to parse a \&#39;.\&#39;&#39;</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">&#39;.&#39;</span><span class="p">);</span>
            <span class="nx">charTest</span><span class="p">(</span><span class="s1">&#39;Start 103a.a1&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse text containing \&#39;_\&#39;&#39;</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">&#39;_&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;:\&#39;&#39;</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">&#39;:&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;,\&#39;&#39;</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">&#39;,&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse text containing \&#39;-\&#39;&#39;</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">&#39;a-b&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;+\&#39;&#39;</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">&#39;+&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;*\&#39;&#39;</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">&#39;*&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;&lt;\&#39;&#39;</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">&#39;&lt;&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;&gt;\&#39;&#39;</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">&#39;&gt;&#39;</span><span class="p">);</span>
        <span class="p">});</span>

        <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;it should be able to parse a \&#39;=\&#39;&#39;</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">&#39;=&#39;</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">&#39;should be possible to declare a class&#39;</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">&#39;graph TD;classDef exClass background:#bbb,border:1px solid red;&#39;</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">&#182;</a>
</div>
<p>var res = flow.parser.parse(&#39;graph TD;style T background: #bbb;&#39;);</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">&#39;exClass&#39;</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">&#39;exClass&#39;</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">&#39;background:#bbb&#39;</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">&#39;exClass&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>

    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should be possible to declare a class with a dot in the style&#39;</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">&#39;graph TD;classDef exClass background:#bbb,border:1.5px solid red;&#39;</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">&#182;</a>
</div>
<p>var res = flow.parser.parse(&#39;graph TD;style T background: #bbb;&#39;);</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">&#39;exClass&#39;</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">&#39;exClass&#39;</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">&#39;background:#bbb&#39;</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">&#39;exClass&#39;</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">&#39;border:1.5px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should be possible to declare a class with a space in the style&#39;</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">&#39;graph TD;classDef exClass background:  #bbb,border:1.5px solid red;&#39;</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">&#182;</a>
</div>
<p>var res = flow.parser.parse(&#39;graph TD;style T background  :  #bbb;&#39;);</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">&#39;exClass&#39;</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">&#39;exClass&#39;</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">&#39;background:  #bbb&#39;</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">&#39;exClass&#39;</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">&#39;border:1.5px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should be possible to apply a class to a vertex&#39;</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">&#39;&#39;</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">&#39;graph TD;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;classDef exClass background:#bbb,border:1px solid red;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;a--&gt;b;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;class a exClass;&#39;</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">&#39;exClass&#39;</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">&#39;exClass&#39;</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">&#39;background:#bbb&#39;</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">&#39;exClass&#39;</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">&#39;border:1px solid red&#39;</span><span class="p">);</span>
    <span class="p">});</span>
    <span class="nx">it</span><span class="p">(</span><span class="s1">&#39;should be possible to apply a class to a comma separated list of vertices&#39;</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">&#39;&#39;</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">&#39;graph TD;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;classDef exClass background:#bbb,border:1px solid red;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;a--&gt;b;&#39;</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</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">&#39;class a,b exClass;&#39;</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">&#39;exClass&#39;</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">&#39;exClass&#39;</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">&#39;background:#bbb&#39;</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">&#39;exClass&#39;</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">&#39;border:1px solid red&#39;</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">&#39;a&#39;</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">&#39;exClass&#39;</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">&#39;b&#39;</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">&#39;exClass&#39;</span><span class="p">);</span>
    <span class="p">});</span>
<span class="p">});</span>
</pre></div>
        </td>
      </tr>
  </tbody>
</table>
  </div>
</body>
</html>