{
  "reportTitle": "config-one",
  "reportPageTitle": "Mochawesome Report Card",
  "stats": {
    "suites": 9,
    "tests": 22,
    "passes": 22,
    "pending": 0,
    "failures": 0,
    "start": "2017-06-12T12:12:59.327Z",
    "end": "2017-06-12T12:12:59.404Z",
    "duration": 77,
    "testsRegistered": 22,
    "passPercent": 100,
    "pendingPercent": 0,
    "other": 0,
    "hasOther": false,
    "skipped": 0,
    "hasSkipped": false,
    "passPercentClass": "success",
    "pendingPercentClass": "danger"
  },
  "suites": {
    "title": "",
    "suites": [
      {
        "title": "extend-views",
        "suites": [],
        "tests": [
          {
            "title": "can generate a new clone",
            "fullTitle": "extend-views can generate a new clone",
            "timedOut": false,
            "duration": 4,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> config0 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">1</span>) );<br>assert.deepEqual(config0, {a: <span class=\"hljs-number\">1</span>, b: <span class=\"hljs-number\">1</span>, c: <span class=\"hljs-number\">3</span>});<br><span class=\"hljs-keyword\">var</span> config01 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">2</span>) );<br><span class=\"hljs-keyword\">const</span> view01 = {<br>  a: <span class=\"hljs-number\">12</span>,<br>  b: <span class=\"hljs-number\">12</span>,<br>  c: <span class=\"hljs-number\">3</span>,<br>  d: <span class=\"hljs-number\">12</span>,<br>};<br>assert.deepEqual(config01, view01);<br><span class=\"hljs-comment\">// extend using the config instead of the source - same results</span><br><span class=\"hljs-keyword\">var</span> config01_a = X( config0, sources[<span class=\"hljs-number\">1</span>] );<br>assert.deepEqual(config01_a, view01);<br><span class=\"hljs-comment\">// extend all three</span><br><span class=\"hljs-keyword\">const</span> config012 = Xa(sources);<br><span class=\"hljs-keyword\">const</span> merged012 = { a: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  d: { m: { q: <span class=\"hljs-number\">8888</span> }, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  e: <span class=\"hljs-number\">7777</span>,<br>  b: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  c: <span class=\"hljs-number\">3</span> };<br>assert.deepEqual(config012, merged012);<br><span class=\"hljs-comment\">// check a few different combinations of swapping source -&gt; config</span><br><span class=\"hljs-keyword\">const</span> config012_a = X(config0, sources[<span class=\"hljs-number\">1</span>], sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_a, merged012);<br><span class=\"hljs-keyword\">const</span> config012_b = X(config01, sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_b, merged012);",
            "isRoot": false,
            "uuid": "671a2584-ab79-428a-af32-e5a33619bb50",
            "parentUUID": "4adde79f-5645-4968-9413-5eb8f4e9556b",
            "skipped": false
          }
        ],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/extend-views.test.js",
        "uuid": "4adde79f-5645-4968-9413-5eb8f4e9556b",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/extend-views.test.js",
        "passes": [
          {
            "title": "can generate a new clone",
            "fullTitle": "extend-views can generate a new clone",
            "timedOut": false,
            "duration": 4,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> config0 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">1</span>) );<br>assert.deepEqual(config0, {a: <span class=\"hljs-number\">1</span>, b: <span class=\"hljs-number\">1</span>, c: <span class=\"hljs-number\">3</span>});<br><span class=\"hljs-keyword\">var</span> config01 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">2</span>) );<br><span class=\"hljs-keyword\">const</span> view01 = {<br>  a: <span class=\"hljs-number\">12</span>,<br>  b: <span class=\"hljs-number\">12</span>,<br>  c: <span class=\"hljs-number\">3</span>,<br>  d: <span class=\"hljs-number\">12</span>,<br>};<br>assert.deepEqual(config01, view01);<br><span class=\"hljs-comment\">// extend using the config instead of the source - same results</span><br><span class=\"hljs-keyword\">var</span> config01_a = X( config0, sources[<span class=\"hljs-number\">1</span>] );<br>assert.deepEqual(config01_a, view01);<br><span class=\"hljs-comment\">// extend all three</span><br><span class=\"hljs-keyword\">const</span> config012 = Xa(sources);<br><span class=\"hljs-keyword\">const</span> merged012 = { a: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  d: { m: { q: <span class=\"hljs-number\">8888</span> }, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  e: <span class=\"hljs-number\">7777</span>,<br>  b: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  c: <span class=\"hljs-number\">3</span> };<br>assert.deepEqual(config012, merged012);<br><span class=\"hljs-comment\">// check a few different combinations of swapping source -&gt; config</span><br><span class=\"hljs-keyword\">const</span> config012_a = X(config0, sources[<span class=\"hljs-number\">1</span>], sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_a, merged012);<br><span class=\"hljs-keyword\">const</span> config012_b = X(config01, sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_b, merged012);",
            "isRoot": false,
            "uuid": "671a2584-ab79-428a-af32-e5a33619bb50",
            "parentUUID": "4adde79f-5645-4968-9413-5eb8f4e9556b",
            "skipped": false
          }
        ],
        "failures": [],
        "skipped": [],
        "hasTests": true,
        "hasSuites": false,
        "totalTests": 1,
        "totalPasses": 1,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": true,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 4
      },
      {
        "title": "low-level",
        "suites": [],
        "tests": [
          {
            "title": "aggregate",
            "fullTitle": "low-level aggregate",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggregate = ℂ.private.aggregate;<br><span class=\"hljs-keyword\">var</span> t0 = aggregate(<span class=\"hljs-literal\">null</span>, <span class=\"hljs-number\">7</span>);<br>assert.equal(t0.length, <span class=\"hljs-number\">1</span>);<br>assert(t0 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t0[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">7</span>);<br><span class=\"hljs-keyword\">var</span> t1 = aggregate([<span class=\"hljs-number\">9</span>], <span class=\"hljs-number\">8</span>);<br>assert.equal(t1.length, <span class=\"hljs-number\">2</span>);<br>assert(t1 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t1[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">9</span>);",
            "isRoot": false,
            "uuid": "8568b826-c959-46c0-a190-e11ef89cc277",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggObjects",
            "fullTitle": "low-level aggObjects",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggObjects = ℂ.private.aggObjects;<br><span class=\"hljs-keyword\">var</span> t5 = aggObjects({}, objb);<br><span class=\"hljs-comment\">// t5:  { a: [ 21 ], c: [ 23 ], d: [ 24 ] }</span><br>assert.equal(<span class=\"hljs-built_in\">Object</span>.keys(t5).length, <span class=\"hljs-number\">3</span>);<br>assert.equal(t5[<span class=\"hljs-string\">'a'</span>][<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">21</span>);",
            "isRoot": false,
            "uuid": "77ddeb5b-ab29-4273-9e98-da197203c1c2",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggAllObjects",
            "fullTitle": "low-level aggAllObjects",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggAllObjects = ℂ.private.aggAllObjects;<br><span class=\"hljs-keyword\">const</span> agg = aggAllObjects(objList);<br>assert.deepEqual(agg,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  });",
            "isRoot": false,
            "uuid": "0445cd98-503c-4a0a-a255-58c01e14761f",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggregate",
            "fullTitle": "low-level aggregate",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> mapping = ℂ.private.mapping;<br><span class=\"hljs-keyword\">const</span> m0 = mapping(objList);<br>assert.deepEqual(m0,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  }<br>);<br><span class=\"hljs-keyword\">const</span> m1 = mapping([{a: <span class=\"hljs-number\">1</span>}]);<br>assert.deepEqual(m1, {a: [<span class=\"hljs-number\">1</span>]});",
            "isRoot": false,
            "uuid": "9219cb17-d698-4f16-baa9-2eb74904e0e5",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          }
        ],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/low-level.test.js",
        "uuid": "b5253263-ed6d-4616-9491-c11b5c245e3d",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/low-level.test.js",
        "passes": [
          {
            "title": "aggregate",
            "fullTitle": "low-level aggregate",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggregate = ℂ.private.aggregate;<br><span class=\"hljs-keyword\">var</span> t0 = aggregate(<span class=\"hljs-literal\">null</span>, <span class=\"hljs-number\">7</span>);<br>assert.equal(t0.length, <span class=\"hljs-number\">1</span>);<br>assert(t0 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t0[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">7</span>);<br><span class=\"hljs-keyword\">var</span> t1 = aggregate([<span class=\"hljs-number\">9</span>], <span class=\"hljs-number\">8</span>);<br>assert.equal(t1.length, <span class=\"hljs-number\">2</span>);<br>assert(t1 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t1[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">9</span>);",
            "isRoot": false,
            "uuid": "8568b826-c959-46c0-a190-e11ef89cc277",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggObjects",
            "fullTitle": "low-level aggObjects",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggObjects = ℂ.private.aggObjects;<br><span class=\"hljs-keyword\">var</span> t5 = aggObjects({}, objb);<br><span class=\"hljs-comment\">// t5:  { a: [ 21 ], c: [ 23 ], d: [ 24 ] }</span><br>assert.equal(<span class=\"hljs-built_in\">Object</span>.keys(t5).length, <span class=\"hljs-number\">3</span>);<br>assert.equal(t5[<span class=\"hljs-string\">'a'</span>][<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">21</span>);",
            "isRoot": false,
            "uuid": "77ddeb5b-ab29-4273-9e98-da197203c1c2",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggAllObjects",
            "fullTitle": "low-level aggAllObjects",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> aggAllObjects = ℂ.private.aggAllObjects;<br><span class=\"hljs-keyword\">const</span> agg = aggAllObjects(objList);<br>assert.deepEqual(agg,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  });",
            "isRoot": false,
            "uuid": "0445cd98-503c-4a0a-a255-58c01e14761f",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          },
          {
            "title": "aggregate",
            "fullTitle": "low-level aggregate",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> mapping = ℂ.private.mapping;<br><span class=\"hljs-keyword\">const</span> m0 = mapping(objList);<br>assert.deepEqual(m0,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  }<br>);<br><span class=\"hljs-keyword\">const</span> m1 = mapping([{a: <span class=\"hljs-number\">1</span>}]);<br>assert.deepEqual(m1, {a: [<span class=\"hljs-number\">1</span>]});",
            "isRoot": false,
            "uuid": "9219cb17-d698-4f16-baa9-2eb74904e0e5",
            "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
            "skipped": false
          }
        ],
        "failures": [],
        "skipped": [],
        "hasTests": true,
        "hasSuites": false,
        "totalTests": 4,
        "totalPasses": 4,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": true,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 1
      },
      {
        "title": "recipes",
        "suites": [],
        "tests": [
          {
            "title": "evaluates recipes late",
            "fullTitle": "recipes evaluates recipes late",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> flag = <span class=\"hljs-literal\">false</span>;<br><span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; {<br>      flag = <span class=\"hljs-literal\">true</span>;<br>      <span class=\"hljs-keyword\">return</span> <span class=\"hljs-number\">3</span>;<br>    }),<br>  }<br>);<br>assert.isNotOk(flag);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.isOk(flag);",
            "isRoot": false,
            "uuid": "cb9c632b-bfbb-4921-95b4-189c865b6359",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "passes functions through",
            "fullTitle": "recipes passes functions through",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'ho'</span>; }),<br>    c: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'hey'</span>; },<br>  }<br>);<br>assert.instanceOf(config.c, <span class=\"hljs-built_in\">Function</span>);<br>assert.equal(config.b(), <span class=\"hljs-string\">'ho'</span>);<br>assert.equal(config.c(), <span class=\"hljs-string\">'hey'</span>);",
            "isRoot": false,
            "uuid": "1e7991e0-9bfc-4736-9849-a55ba26fa0a5",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "allows using \"this\" to refer to the config",
            "fullTitle": "recipes allows using \"this\" to refer to the config",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-keyword\">this</span>.a; }),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">1</span>);",
            "isRoot": false,
            "uuid": "2e459cf9-e3a7-455a-ae8d-40208a8adaed",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "recipes can return objects",
            "fullTitle": "recipes recipes can return objects",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: <span class=\"hljs-number\">88</span>,<br>    })),<br>  }<br>);<br>assert.equal(config.a.A, <span class=\"hljs-number\">79</span>);<br>assert.equal(config.a.B, <span class=\"hljs-number\">67</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">88</span>);",
            "isRoot": false,
            "uuid": "d2700278-9baa-43ab-a719-270401de9017",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "handles recipe cross-references",
            "fullTitle": "recipes handles recipe cross-references",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>  }<br>);<br>assert.deepEqual(config,<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: {<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: {<br>        A: <span class=\"hljs-number\">79</span>,<br>        B: <span class=\"hljs-number\">67</span><br>      }<br>    }<br>  }<br>);",
            "isRoot": false,
            "uuid": "ada4b5f8-d3b2-429b-84ea-71675891fa3c",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "more recipe cross-references",
            "fullTitle": "recipes more recipe cross-references",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">42</span>,<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>    c: ℂ(Ɔ=&gt; Ɔ.b.A),<br>  }<br>);<br>assert.equal(config.a, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">77</span>);",
            "isRoot": false,
            "uuid": "f3fc0dbf-a3f9-4906-acc2-40a4f7915713",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "works with the service-registry example",
            "fullTitle": "recipes works with the service-registry example",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config0 = {<br>  ver: <span class=\"hljs-string\">'1.0.0'</span>,<br>  mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>  libs: ℂ(Ɔ=&gt; ({<br>    mdlib: Ɔ.mdlib,<br>    jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>  })),<br>  cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>  jqurl: ℂ(Ɔ=&gt; Ɔ.cdn + Ɔ.libs.jqlib + <span class=\"hljs-string\">'-'</span> + Ɔ.ver),<br>};<br><span class=\"hljs-keyword\">const</span> config1 = {<br>  ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>  libs: { funclib: <span class=\"hljs-string\">'ramda'</span>, },<br>  clibs: ℂ(Ɔ=&gt; Ɔ.libs),<br>};<br><span class=\"hljs-keyword\">const</span> config = X(config0, config1);<br>assert.deepEqual(config,<br>  { ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>    mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>    libs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>    cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>    jqurl: <span class=\"hljs-string\">'https://cdn.org/jQuery-1.1.0'</span>,<br>    clibs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>  }<br>);",
            "isRoot": false,
            "uuid": "09e5ab63-6411-4d8e-9930-95bca8d27f68",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          }
        ],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/recipes.test.js",
        "uuid": "40d605bc-8561-4502-a653-b7c22c2231ea",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/recipes.test.js",
        "passes": [
          {
            "title": "evaluates recipes late",
            "fullTitle": "recipes evaluates recipes late",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> flag = <span class=\"hljs-literal\">false</span>;<br><span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; {<br>      flag = <span class=\"hljs-literal\">true</span>;<br>      <span class=\"hljs-keyword\">return</span> <span class=\"hljs-number\">3</span>;<br>    }),<br>  }<br>);<br>assert.isNotOk(flag);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.isOk(flag);",
            "isRoot": false,
            "uuid": "cb9c632b-bfbb-4921-95b4-189c865b6359",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "passes functions through",
            "fullTitle": "recipes passes functions through",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'ho'</span>; }),<br>    c: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'hey'</span>; },<br>  }<br>);<br>assert.instanceOf(config.c, <span class=\"hljs-built_in\">Function</span>);<br>assert.equal(config.b(), <span class=\"hljs-string\">'ho'</span>);<br>assert.equal(config.c(), <span class=\"hljs-string\">'hey'</span>);",
            "isRoot": false,
            "uuid": "1e7991e0-9bfc-4736-9849-a55ba26fa0a5",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "allows using \"this\" to refer to the config",
            "fullTitle": "recipes allows using \"this\" to refer to the config",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-keyword\">this</span>.a; }),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">1</span>);",
            "isRoot": false,
            "uuid": "2e459cf9-e3a7-455a-ae8d-40208a8adaed",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "recipes can return objects",
            "fullTitle": "recipes recipes can return objects",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: <span class=\"hljs-number\">88</span>,<br>    })),<br>  }<br>);<br>assert.equal(config.a.A, <span class=\"hljs-number\">79</span>);<br>assert.equal(config.a.B, <span class=\"hljs-number\">67</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">88</span>);",
            "isRoot": false,
            "uuid": "d2700278-9baa-43ab-a719-270401de9017",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "handles recipe cross-references",
            "fullTitle": "recipes handles recipe cross-references",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>  }<br>);<br>assert.deepEqual(config,<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: {<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: {<br>        A: <span class=\"hljs-number\">79</span>,<br>        B: <span class=\"hljs-number\">67</span><br>      }<br>    }<br>  }<br>);",
            "isRoot": false,
            "uuid": "ada4b5f8-d3b2-429b-84ea-71675891fa3c",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "more recipe cross-references",
            "fullTitle": "recipes more recipe cross-references",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">42</span>,<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>    c: ℂ(Ɔ=&gt; Ɔ.b.A),<br>  }<br>);<br>assert.equal(config.a, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">77</span>);",
            "isRoot": false,
            "uuid": "f3fc0dbf-a3f9-4906-acc2-40a4f7915713",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          },
          {
            "title": "works with the service-registry example",
            "fullTitle": "recipes works with the service-registry example",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> config0 = {<br>  ver: <span class=\"hljs-string\">'1.0.0'</span>,<br>  mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>  libs: ℂ(Ɔ=&gt; ({<br>    mdlib: Ɔ.mdlib,<br>    jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>  })),<br>  cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>  jqurl: ℂ(Ɔ=&gt; Ɔ.cdn + Ɔ.libs.jqlib + <span class=\"hljs-string\">'-'</span> + Ɔ.ver),<br>};<br><span class=\"hljs-keyword\">const</span> config1 = {<br>  ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>  libs: { funclib: <span class=\"hljs-string\">'ramda'</span>, },<br>  clibs: ℂ(Ɔ=&gt; Ɔ.libs),<br>};<br><span class=\"hljs-keyword\">const</span> config = X(config0, config1);<br>assert.deepEqual(config,<br>  { ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>    mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>    libs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>    cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>    jqurl: <span class=\"hljs-string\">'https://cdn.org/jQuery-1.1.0'</span>,<br>    clibs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>  }<br>);",
            "isRoot": false,
            "uuid": "09e5ab63-6411-4d8e-9930-95bca8d27f68",
            "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
            "skipped": false
          }
        ],
        "failures": [],
        "skipped": [],
        "hasTests": true,
        "hasSuites": false,
        "totalTests": 7,
        "totalPasses": 7,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": true,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 3
      },
      {
        "title": "examples",
        "suites": [
          {
            "title": "README example 1: no config-local",
            "suites": [],
            "tests": [
              {
                "title": "should match the config file",
                "fullTitle": "examples README example 1: no config-local should match the config file",
                "timedOut": false,
                "duration": 8,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme1'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme1/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'prod'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8870</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}<br>test1_done = <span class=\"hljs-literal\">true</span>;<br>assert.equal(test2_started, <span class=\"hljs-literal\">false</span>, <span class=\"hljs-string\">'test2 started early!'</span>);",
                "isRoot": false,
                "uuid": "49d7c1ef-db74-4690-aa86-500def8520ce",
                "parentUUID": "519c9808-247f-4c42-8fa7-11260a877789",
                "skipped": false
              }
            ],
            "pending": [],
            "root": false,
            "_timeout": 2000,
            "file": "/test/unit/test-examples/examples.test.js",
            "uuid": "519c9808-247f-4c42-8fa7-11260a877789",
            "fullFile": "/Users/klortho/vcs/config-one/test/unit/test-examples/examples.test.js",
            "passes": [
              {
                "title": "should match the config file",
                "fullTitle": "examples README example 1: no config-local should match the config file",
                "timedOut": false,
                "duration": 8,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme1'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme1/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'prod'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8870</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}<br>test1_done = <span class=\"hljs-literal\">true</span>;<br>assert.equal(test2_started, <span class=\"hljs-literal\">false</span>, <span class=\"hljs-string\">'test2 started early!'</span>);",
                "isRoot": false,
                "uuid": "49d7c1ef-db74-4690-aa86-500def8520ce",
                "parentUUID": "519c9808-247f-4c42-8fa7-11260a877789",
                "skipped": false
              }
            ],
            "failures": [],
            "skipped": [],
            "hasTests": true,
            "hasSuites": false,
            "totalTests": 1,
            "totalPasses": 1,
            "totalFailures": 0,
            "totalPending": 0,
            "totalSkipped": 0,
            "hasPasses": true,
            "hasFailures": false,
            "hasPending": false,
            "hasSkipped": false,
            "duration": 8
          },
          {
            "title": "README example 2: with local config",
            "suites": [],
            "tests": [
              {
                "title": "should reflect overrides",
                "fullTitle": "examples README example 2: with local config should reflect overrides",
                "timedOut": false,
                "duration": 3,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "assert.equal(test1_done, <span class=\"hljs-literal\">true</span>, <span class=\"hljs-string\">'sequential, dammit!'</span>);<br><span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme2'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme2/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'dev'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8880</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}",
                "isRoot": false,
                "uuid": "10f2d040-cde1-41e2-8dd3-77c2d5f251a2",
                "parentUUID": "f4679629-7c60-4b38-805f-1442082e6141",
                "skipped": false
              }
            ],
            "pending": [],
            "root": false,
            "_timeout": 2000,
            "file": "/test/unit/test-examples/examples.test.js",
            "uuid": "f4679629-7c60-4b38-805f-1442082e6141",
            "fullFile": "/Users/klortho/vcs/config-one/test/unit/test-examples/examples.test.js",
            "passes": [
              {
                "title": "should reflect overrides",
                "fullTitle": "examples README example 2: with local config should reflect overrides",
                "timedOut": false,
                "duration": 3,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "assert.equal(test1_done, <span class=\"hljs-literal\">true</span>, <span class=\"hljs-string\">'sequential, dammit!'</span>);<br><span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme2'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme2/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'dev'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8880</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}",
                "isRoot": false,
                "uuid": "10f2d040-cde1-41e2-8dd3-77c2d5f251a2",
                "parentUUID": "f4679629-7c60-4b38-805f-1442082e6141",
                "skipped": false
              }
            ],
            "failures": [],
            "skipped": [],
            "hasTests": true,
            "hasSuites": false,
            "totalTests": 1,
            "totalPasses": 1,
            "totalFailures": 0,
            "totalPending": 0,
            "totalSkipped": 0,
            "hasPasses": true,
            "hasFailures": false,
            "hasPending": false,
            "hasSkipped": false,
            "duration": 3
          },
          {
            "title": "README example 3: semver example",
            "suites": [],
            "tests": [
              {
                "title": "computes best version correctly",
                "fullTitle": "examples README example 3: semver example computes best version correctly",
                "timedOut": false,
                "duration": 17,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>        process.chdir(__dirname + <span class=\"hljs-string\">'/readme3'</span>);<br>        <span class=\"hljs-keyword\">try</span> {<br>          <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme3/main.js'</span>);<br>          checkSpec(cfg,<br>            { cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>              libs: { <br>                available: {  <br>                  <span class=\"hljs-string\">'markdown-it'</span>: {<br>                    versions: [ <span class=\"hljs-string\">'1.0.0'</span>, <span class=\"hljs-string\">'1.1.0'</span>, <span class=\"hljs-string\">'2.0.1'</span> ],<br>                  },<br>                },<br>                required: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'&gt;=2.0.0'</span> },<br>                enabled: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'2.0.1'</span> } <br>              } <br>            }<br>          );<br>        }<br>        <span class=\"hljs-keyword\">finally</span> {<br>          process.chdir(saveCwd);<br>        }",
                "isRoot": false,
                "uuid": "f8da137e-c7f1-483e-a94f-b74e68a3ae6b",
                "parentUUID": "75849633-aaf2-4736-9181-ead80b37e817",
                "skipped": false
              }
            ],
            "pending": [],
            "root": false,
            "_timeout": 2000,
            "file": "/test/unit/test-examples/examples.test.js",
            "uuid": "75849633-aaf2-4736-9181-ead80b37e817",
            "fullFile": "/Users/klortho/vcs/config-one/test/unit/test-examples/examples.test.js",
            "passes": [
              {
                "title": "computes best version correctly",
                "fullTitle": "examples README example 3: semver example computes best version correctly",
                "timedOut": false,
                "duration": 17,
                "state": "passed",
                "speed": "fast",
                "pass": true,
                "fail": false,
                "pending": false,
                "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>        process.chdir(__dirname + <span class=\"hljs-string\">'/readme3'</span>);<br>        <span class=\"hljs-keyword\">try</span> {<br>          <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme3/main.js'</span>);<br>          checkSpec(cfg,<br>            { cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>              libs: { <br>                available: {  <br>                  <span class=\"hljs-string\">'markdown-it'</span>: {<br>                    versions: [ <span class=\"hljs-string\">'1.0.0'</span>, <span class=\"hljs-string\">'1.1.0'</span>, <span class=\"hljs-string\">'2.0.1'</span> ],<br>                  },<br>                },<br>                required: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'&gt;=2.0.0'</span> },<br>                enabled: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'2.0.1'</span> } <br>              } <br>            }<br>          );<br>        }<br>        <span class=\"hljs-keyword\">finally</span> {<br>          process.chdir(saveCwd);<br>        }",
                "isRoot": false,
                "uuid": "f8da137e-c7f1-483e-a94f-b74e68a3ae6b",
                "parentUUID": "75849633-aaf2-4736-9181-ead80b37e817",
                "skipped": false
              }
            ],
            "failures": [],
            "skipped": [],
            "hasTests": true,
            "hasSuites": false,
            "totalTests": 1,
            "totalPasses": 1,
            "totalFailures": 0,
            "totalPending": 0,
            "totalSkipped": 0,
            "hasPasses": true,
            "hasFailures": false,
            "hasPending": false,
            "hasSkipped": false,
            "duration": 17
          }
        ],
        "tests": [],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/test-examples/examples.test.js",
        "uuid": "a9fc2889-a494-45f6-a596-560b97db00cb",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/test-examples/examples.test.js",
        "passes": [],
        "failures": [],
        "skipped": [],
        "hasTests": false,
        "hasSuites": true,
        "totalTests": 0,
        "totalPasses": 0,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": false,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 0
      },
      {
        "title": "unicode - works with these unicode characters as symbols",
        "suites": [],
        "tests": [
          {
            "title": "my favorites",
            "fullTitle": "unicode - works with these unicode characters as symbols my favorites",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-number\">5</span> + Ɔ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">6</span>);",
            "isRoot": false,
            "uuid": "facea5ab-2faf-4a7f-94d1-8111e20e8ecd",
            "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
            "skipped": false
          },
          {
            "title": "others",
            "fullTitle": "unicode - works with these unicode characters as symbols others",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-comment\">// Symbols for recipe</span><br><span class=\"hljs-keyword\">var</span> [ᗏ, ρ, 食, ᐸ, Ⱉ, ᴙ, ᐧ, ǀ, ᗕ, ᑕ, ᐳ, ᐸ] = R.repeat(ℂ.recipe, <span class=\"hljs-number\">20</span>);<br><span class=\"hljs-keyword\">var</span> config = X(<br>  {<br>    <span class=\"hljs-comment\">// One of my favorites, for the looks:</span><br>    m: ᗏ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: ρ(X=&gt; <span class=\"hljs-number\">3</span>),<br>    f: 食(X=&gt; <span class=\"hljs-number\">3</span>),<br>    <span class=\"hljs-comment\">// Symbols just for their looks</span><br>    c: ᐸ(ᐳ=&gt; <span class=\"hljs-number\">3</span> + ᐳ.a),<br>    d: Ⱉ(X=&gt; <span class=\"hljs-number\">3</span> + X.a),<br>    e: ᴙ(X=&gt; <span class=\"hljs-number\">7</span>),<br>    g: ᐧ(ǀ=&gt; <span class=\"hljs-number\">9</span>),<br>    h: ǀ(ᐧ=&gt; <span class=\"hljs-number\">9</span> + ᐧ.a),<br>    i: ᗕ(Ⅰ=&gt; <span class=\"hljs-number\">20</span> + Ⅰ.a),<br>    j: ᑕ(ǀ=&gt; <span class=\"hljs-number\">3</span> + ǀ.a),<br>    <span class=\"hljs-comment\">// I like these, because the symbols are clean and symmetrical, and</span><br>    <span class=\"hljs-comment\">// the \"ᑕ\" looks like a capital \"C\", for \"config\". But the characters</span><br>    <span class=\"hljs-comment\">// for recipe, \"ᐳ\" and \"ᐸ\", look too much like \"&lt;\" and \"&gt;\".</span><br>    k: ᐳ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    n: ᐸ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.f, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.d, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.e, <span class=\"hljs-number\">7</span>);<br>assert.equal(config.g, <span class=\"hljs-number\">9</span>);<br>assert.equal(config.h, <span class=\"hljs-number\">10</span>);",
            "isRoot": false,
            "uuid": "ff290864-129e-4837-ad4e-bfc70dcdd1cd",
            "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
            "skipped": false
          }
        ],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/unicode.test.js",
        "uuid": "81960a12-d24d-4158-a997-b5f4af097aca",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/unicode.test.js",
        "passes": [
          {
            "title": "my favorites",
            "fullTitle": "unicode - works with these unicode characters as symbols my favorites",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">var</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-number\">5</span> + Ɔ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">6</span>);",
            "isRoot": false,
            "uuid": "facea5ab-2faf-4a7f-94d1-8111e20e8ecd",
            "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
            "skipped": false
          },
          {
            "title": "others",
            "fullTitle": "unicode - works with these unicode characters as symbols others",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-comment\">// Symbols for recipe</span><br><span class=\"hljs-keyword\">var</span> [ᗏ, ρ, 食, ᐸ, Ⱉ, ᴙ, ᐧ, ǀ, ᗕ, ᑕ, ᐳ, ᐸ] = R.repeat(ℂ.recipe, <span class=\"hljs-number\">20</span>);<br><span class=\"hljs-keyword\">var</span> config = X(<br>  {<br>    <span class=\"hljs-comment\">// One of my favorites, for the looks:</span><br>    m: ᗏ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: ρ(X=&gt; <span class=\"hljs-number\">3</span>),<br>    f: 食(X=&gt; <span class=\"hljs-number\">3</span>),<br>    <span class=\"hljs-comment\">// Symbols just for their looks</span><br>    c: ᐸ(ᐳ=&gt; <span class=\"hljs-number\">3</span> + ᐳ.a),<br>    d: Ⱉ(X=&gt; <span class=\"hljs-number\">3</span> + X.a),<br>    e: ᴙ(X=&gt; <span class=\"hljs-number\">7</span>),<br>    g: ᐧ(ǀ=&gt; <span class=\"hljs-number\">9</span>),<br>    h: ǀ(ᐧ=&gt; <span class=\"hljs-number\">9</span> + ᐧ.a),<br>    i: ᗕ(Ⅰ=&gt; <span class=\"hljs-number\">20</span> + Ⅰ.a),<br>    j: ᑕ(ǀ=&gt; <span class=\"hljs-number\">3</span> + ǀ.a),<br>    <span class=\"hljs-comment\">// I like these, because the symbols are clean and symmetrical, and</span><br>    <span class=\"hljs-comment\">// the \"ᑕ\" looks like a capital \"C\", for \"config\". But the characters</span><br>    <span class=\"hljs-comment\">// for recipe, \"ᐳ\" and \"ᐸ\", look too much like \"&lt;\" and \"&gt;\".</span><br>    k: ᐳ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    n: ᐸ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.f, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.d, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.e, <span class=\"hljs-number\">7</span>);<br>assert.equal(config.g, <span class=\"hljs-number\">9</span>);<br>assert.equal(config.h, <span class=\"hljs-number\">10</span>);",
            "isRoot": false,
            "uuid": "ff290864-129e-4837-ad4e-bfc70dcdd1cd",
            "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
            "skipped": false
          }
        ],
        "failures": [],
        "skipped": [],
        "hasTests": true,
        "hasSuites": false,
        "totalTests": 2,
        "totalPasses": 2,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": true,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 1
      },
      {
        "title": "views - creating views",
        "suites": [],
        "tests": [
          {
            "title": "can generate a new clone",
            "fullTitle": "views - creating views can generate a new clone",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> seed = ℂ.private.seed;<br><span class=\"hljs-keyword\">const</span> clone = ℂ.private.clone;<br><span class=\"hljs-keyword\">const</span> seed2 = clone();<br><span class=\"hljs-comment\">// This is a different object</span><br>assert.notEqual(seed2, seed);<br>assert.instanceOf(seed, <span class=\"hljs-built_in\">Function</span>);<br>assert.strictEqual(seed.private.clone, clone);",
            "isRoot": false,
            "uuid": "de3f4734-60cf-48b2-a40f-80f65e2bb713",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "new object makes a view",
            "fullTitle": "views - creating views new object makes a view",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> view = ℂ.extend({a: <span class=\"hljs-number\">11</span>});<br>assert.equal(<span class=\"hljs-keyword\">typeof</span> view, <span class=\"hljs-string\">'object'</span>);<br>assert(<span class=\"hljs-string\">'__config1__'</span> <span class=\"hljs-keyword\">in</span> view);<br>assert.equal(view.a, <span class=\"hljs-number\">11</span>);<br><span class=\"hljs-comment\">// I used to have a `view` property in c1; bad idea.</span><br>assert(!(<span class=\"hljs-string\">'view'</span> <span class=\"hljs-keyword\">in</span> ℂ));",
            "isRoot": false,
            "uuid": "d9b06574-bd71-48a9-9350-84e14d1b5ff9",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "can make simple views",
            "fullTitle": "views - creating views can make simple views",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> viewb = ℂ.extend({a: <span class=\"hljs-number\">21</span>, b: <span class=\"hljs-number\">22</span>, c: <span class=\"hljs-number\">23</span>});<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.equal(viewb.b, <span class=\"hljs-number\">22</span>);<br>assert.equal(viewb.c, <span class=\"hljs-number\">23</span>);<br><span class=\"hljs-keyword\">const</span> viewc = ℂ.extend(<br>  {a: <span class=\"hljs-number\">31</span>, b: <span class=\"hljs-number\">32</span>, c: <span class=\"hljs-number\">33</span>},<br>  {a: <span class=\"hljs-number\">35</span>}<br>);<br>assert(viewc.a == <span class=\"hljs-number\">35</span> &amp;&amp; viewc.b == <span class=\"hljs-number\">32</span> &amp;&amp; viewc.c == <span class=\"hljs-number\">33</span>);<br><span class=\"hljs-keyword\">const</span> viewd = ℂ.extend(obja, objb, objc);<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.deepEqual(viewd,<br>  { a: <span class=\"hljs-number\">31</span>,<br>    b: <span class=\"hljs-number\">32</span>,<br>    c: <span class=\"hljs-number\">23</span>,<br>    d: <span class=\"hljs-number\">34</span>,<br>    e: <span class=\"hljs-number\">35</span>,<br>  }<br>);",
            "isRoot": false,
            "uuid": "5c2bd734-1acf-45c7-87c0-e47bad6751e2",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "test two-level-deep views",
            "fullTitle": "views - creating views test two-level-deep views",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> src = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: {a: <span class=\"hljs-number\">3</span>, c: <span class=\"hljs-number\">2</span>}<br>};<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(src);<br>assert.equal(view.a, <span class=\"hljs-number\">1</span>);<br>assert.equal(view.b.a, <span class=\"hljs-number\">3</span>);<br>assert.equal(view.b.c, <span class=\"hljs-number\">2</span>);<br>assert.deepEqual(view, src);",
            "isRoot": false,
            "uuid": "d4696316-77dd-499e-8845-77a1a79386cd",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "deeply nested view",
            "fullTitle": "views - creating views deeply nested view",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> nested = [<br>  {<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      a: <span class=\"hljs-string\">'cat'</span>,<br>      b: {<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        d: <span class=\"hljs-string\">'d'</span>,<br>      },<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">9</span>,<br>    c: {<br>      b: {<br>        a: {<br>          a: <span class=\"hljs-string\">'x'</span>,<br>        },<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        c: <span class=\"hljs-string\">'wart'</span>,<br>        d: <span class=\"hljs-string\">'freckle'</span>,<br>      },<br>      c: <span class=\"hljs-string\">'dog'</span>,<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      b: {<br>        a: {<br>          b: <span class=\"hljs-string\">'y'</span>,<br>          c: <span class=\"hljs-string\">'z'</span>,<br>        },<br>        d: <span class=\"hljs-string\">'mole'</span>,<br>      },<br>      x: <span class=\"hljs-string\">'doggy'</span>,<br>    },<br>    y: <span class=\"hljs-string\">'awesome!'</span>,<br>  },<br>];<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(...nested);<br><span class=\"hljs-keyword\">const</span> exp = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: <span class=\"hljs-number\">2</span>,<br>  c: {<br>    a: <span class=\"hljs-string\">'cat'</span>,<br>    b: {<br>      a: {<br>        a: <span class=\"hljs-string\">'x'</span>,<br>        b: <span class=\"hljs-string\">'y'</span>,<br>        c: <span class=\"hljs-string\">'z'</span>,<br>      },<br>      b: <span class=\"hljs-string\">'b'</span>,<br>      c: <span class=\"hljs-string\">'wart'</span>,<br>      d: <span class=\"hljs-string\">'mole'</span>,<br>    },<br>    c: <span class=\"hljs-string\">'dog'</span>,<br>    x: <span class=\"hljs-string\">'doggy'</span>,<br>  },<br>  y: <span class=\"hljs-string\">'awesome!'</span>,<br>};<br>assert.deepEqual(view, exp);",
            "isRoot": false,
            "uuid": "dbe8ed7b-2942-43b8-8853-329a97905c9f",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          }
        ],
        "pending": [],
        "root": false,
        "_timeout": 2000,
        "file": "/test/unit/views.test.js",
        "uuid": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
        "fullFile": "/Users/klortho/vcs/config-one/test/unit/views.test.js",
        "passes": [
          {
            "title": "can generate a new clone",
            "fullTitle": "views - creating views can generate a new clone",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> seed = ℂ.private.seed;<br><span class=\"hljs-keyword\">const</span> clone = ℂ.private.clone;<br><span class=\"hljs-keyword\">const</span> seed2 = clone();<br><span class=\"hljs-comment\">// This is a different object</span><br>assert.notEqual(seed2, seed);<br>assert.instanceOf(seed, <span class=\"hljs-built_in\">Function</span>);<br>assert.strictEqual(seed.private.clone, clone);",
            "isRoot": false,
            "uuid": "de3f4734-60cf-48b2-a40f-80f65e2bb713",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "new object makes a view",
            "fullTitle": "views - creating views new object makes a view",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> view = ℂ.extend({a: <span class=\"hljs-number\">11</span>});<br>assert.equal(<span class=\"hljs-keyword\">typeof</span> view, <span class=\"hljs-string\">'object'</span>);<br>assert(<span class=\"hljs-string\">'__config1__'</span> <span class=\"hljs-keyword\">in</span> view);<br>assert.equal(view.a, <span class=\"hljs-number\">11</span>);<br><span class=\"hljs-comment\">// I used to have a `view` property in c1; bad idea.</span><br>assert(!(<span class=\"hljs-string\">'view'</span> <span class=\"hljs-keyword\">in</span> ℂ));",
            "isRoot": false,
            "uuid": "d9b06574-bd71-48a9-9350-84e14d1b5ff9",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "can make simple views",
            "fullTitle": "views - creating views can make simple views",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> viewb = ℂ.extend({a: <span class=\"hljs-number\">21</span>, b: <span class=\"hljs-number\">22</span>, c: <span class=\"hljs-number\">23</span>});<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.equal(viewb.b, <span class=\"hljs-number\">22</span>);<br>assert.equal(viewb.c, <span class=\"hljs-number\">23</span>);<br><span class=\"hljs-keyword\">const</span> viewc = ℂ.extend(<br>  {a: <span class=\"hljs-number\">31</span>, b: <span class=\"hljs-number\">32</span>, c: <span class=\"hljs-number\">33</span>},<br>  {a: <span class=\"hljs-number\">35</span>}<br>);<br>assert(viewc.a == <span class=\"hljs-number\">35</span> &amp;&amp; viewc.b == <span class=\"hljs-number\">32</span> &amp;&amp; viewc.c == <span class=\"hljs-number\">33</span>);<br><span class=\"hljs-keyword\">const</span> viewd = ℂ.extend(obja, objb, objc);<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.deepEqual(viewd,<br>  { a: <span class=\"hljs-number\">31</span>,<br>    b: <span class=\"hljs-number\">32</span>,<br>    c: <span class=\"hljs-number\">23</span>,<br>    d: <span class=\"hljs-number\">34</span>,<br>    e: <span class=\"hljs-number\">35</span>,<br>  }<br>);",
            "isRoot": false,
            "uuid": "5c2bd734-1acf-45c7-87c0-e47bad6751e2",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "test two-level-deep views",
            "fullTitle": "views - creating views test two-level-deep views",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> src = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: {a: <span class=\"hljs-number\">3</span>, c: <span class=\"hljs-number\">2</span>}<br>};<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(src);<br>assert.equal(view.a, <span class=\"hljs-number\">1</span>);<br>assert.equal(view.b.a, <span class=\"hljs-number\">3</span>);<br>assert.equal(view.b.c, <span class=\"hljs-number\">2</span>);<br>assert.deepEqual(view, src);",
            "isRoot": false,
            "uuid": "d4696316-77dd-499e-8845-77a1a79386cd",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          },
          {
            "title": "deeply nested view",
            "fullTitle": "views - creating views deeply nested view",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "<span class=\"hljs-keyword\">const</span> nested = [<br>  {<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      a: <span class=\"hljs-string\">'cat'</span>,<br>      b: {<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        d: <span class=\"hljs-string\">'d'</span>,<br>      },<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">9</span>,<br>    c: {<br>      b: {<br>        a: {<br>          a: <span class=\"hljs-string\">'x'</span>,<br>        },<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        c: <span class=\"hljs-string\">'wart'</span>,<br>        d: <span class=\"hljs-string\">'freckle'</span>,<br>      },<br>      c: <span class=\"hljs-string\">'dog'</span>,<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      b: {<br>        a: {<br>          b: <span class=\"hljs-string\">'y'</span>,<br>          c: <span class=\"hljs-string\">'z'</span>,<br>        },<br>        d: <span class=\"hljs-string\">'mole'</span>,<br>      },<br>      x: <span class=\"hljs-string\">'doggy'</span>,<br>    },<br>    y: <span class=\"hljs-string\">'awesome!'</span>,<br>  },<br>];<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(...nested);<br><span class=\"hljs-keyword\">const</span> exp = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: <span class=\"hljs-number\">2</span>,<br>  c: {<br>    a: <span class=\"hljs-string\">'cat'</span>,<br>    b: {<br>      a: {<br>        a: <span class=\"hljs-string\">'x'</span>,<br>        b: <span class=\"hljs-string\">'y'</span>,<br>        c: <span class=\"hljs-string\">'z'</span>,<br>      },<br>      b: <span class=\"hljs-string\">'b'</span>,<br>      c: <span class=\"hljs-string\">'wart'</span>,<br>      d: <span class=\"hljs-string\">'mole'</span>,<br>    },<br>    c: <span class=\"hljs-string\">'dog'</span>,<br>    x: <span class=\"hljs-string\">'doggy'</span>,<br>  },<br>  y: <span class=\"hljs-string\">'awesome!'</span>,<br>};<br>assert.deepEqual(view, exp);",
            "isRoot": false,
            "uuid": "dbe8ed7b-2942-43b8-8853-329a97905c9f",
            "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
            "skipped": false
          }
        ],
        "failures": [],
        "skipped": [],
        "hasTests": true,
        "hasSuites": false,
        "totalTests": 5,
        "totalPasses": 5,
        "totalFailures": 0,
        "totalPending": 0,
        "totalSkipped": 0,
        "hasPasses": true,
        "hasFailures": false,
        "hasPending": false,
        "hasSkipped": false,
        "duration": 2
      }
    ],
    "tests": [],
    "pending": [],
    "root": true,
    "_timeout": 2000,
    "uuid": "39dd1860-6927-403a-84fb-631f60d8260f",
    "fullFile": "",
    "file": "",
    "passes": [],
    "failures": [],
    "skipped": [],
    "hasTests": false,
    "hasSuites": true,
    "totalTests": 0,
    "totalPasses": 0,
    "totalFailures": 0,
    "totalPending": 0,
    "totalSkipped": 0,
    "hasPasses": false,
    "hasFailures": false,
    "hasPending": false,
    "hasSkipped": false,
    "duration": 0,
    "rootEmpty": true
  },
  "allTests": [
    {
      "title": "can generate a new clone",
      "fullTitle": "extend-views can generate a new clone",
      "timedOut": false,
      "duration": 4,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> config0 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">1</span>) );<br>assert.deepEqual(config0, {a: <span class=\"hljs-number\">1</span>, b: <span class=\"hljs-number\">1</span>, c: <span class=\"hljs-number\">3</span>});<br><span class=\"hljs-keyword\">var</span> config01 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">2</span>) );<br><span class=\"hljs-keyword\">const</span> view01 = {<br>  a: <span class=\"hljs-number\">12</span>,<br>  b: <span class=\"hljs-number\">12</span>,<br>  c: <span class=\"hljs-number\">3</span>,<br>  d: <span class=\"hljs-number\">12</span>,<br>};<br>assert.deepEqual(config01, view01);<br><span class=\"hljs-comment\">// extend using the config instead of the source - same results</span><br><span class=\"hljs-keyword\">var</span> config01_a = X( config0, sources[<span class=\"hljs-number\">1</span>] );<br>assert.deepEqual(config01_a, view01);<br><span class=\"hljs-comment\">// extend all three</span><br><span class=\"hljs-keyword\">const</span> config012 = Xa(sources);<br><span class=\"hljs-keyword\">const</span> merged012 = { a: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  d: { m: { q: <span class=\"hljs-number\">8888</span> }, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  e: <span class=\"hljs-number\">7777</span>,<br>  b: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  c: <span class=\"hljs-number\">3</span> };<br>assert.deepEqual(config012, merged012);<br><span class=\"hljs-comment\">// check a few different combinations of swapping source -&gt; config</span><br><span class=\"hljs-keyword\">const</span> config012_a = X(config0, sources[<span class=\"hljs-number\">1</span>], sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_a, merged012);<br><span class=\"hljs-keyword\">const</span> config012_b = X(config01, sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_b, merged012);",
      "isRoot": false,
      "uuid": "6b659340-c40b-483e-9165-273646ef57c5",
      "parentUUID": "4adde79f-5645-4968-9413-5eb8f4e9556b",
      "skipped": false
    },
    {
      "title": "aggregate",
      "fullTitle": "low-level aggregate",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggregate = ℂ.private.aggregate;<br><span class=\"hljs-keyword\">var</span> t0 = aggregate(<span class=\"hljs-literal\">null</span>, <span class=\"hljs-number\">7</span>);<br>assert.equal(t0.length, <span class=\"hljs-number\">1</span>);<br>assert(t0 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t0[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">7</span>);<br><span class=\"hljs-keyword\">var</span> t1 = aggregate([<span class=\"hljs-number\">9</span>], <span class=\"hljs-number\">8</span>);<br>assert.equal(t1.length, <span class=\"hljs-number\">2</span>);<br>assert(t1 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t1[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">9</span>);",
      "isRoot": false,
      "uuid": "eef92e8f-802e-43b1-8329-3d3e41a98acf",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggObjects",
      "fullTitle": "low-level aggObjects",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggObjects = ℂ.private.aggObjects;<br><span class=\"hljs-keyword\">var</span> t5 = aggObjects({}, objb);<br><span class=\"hljs-comment\">// t5:  { a: [ 21 ], c: [ 23 ], d: [ 24 ] }</span><br>assert.equal(<span class=\"hljs-built_in\">Object</span>.keys(t5).length, <span class=\"hljs-number\">3</span>);<br>assert.equal(t5[<span class=\"hljs-string\">'a'</span>][<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">21</span>);",
      "isRoot": false,
      "uuid": "8261f304-d0ca-497f-a625-7e59f4f649c1",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggAllObjects",
      "fullTitle": "low-level aggAllObjects",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggAllObjects = ℂ.private.aggAllObjects;<br><span class=\"hljs-keyword\">const</span> agg = aggAllObjects(objList);<br>assert.deepEqual(agg,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  });",
      "isRoot": false,
      "uuid": "9bdd47cb-3c8f-4d38-87bf-d393268cb9d0",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggregate",
      "fullTitle": "low-level aggregate",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> mapping = ℂ.private.mapping;<br><span class=\"hljs-keyword\">const</span> m0 = mapping(objList);<br>assert.deepEqual(m0,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  }<br>);<br><span class=\"hljs-keyword\">const</span> m1 = mapping([{a: <span class=\"hljs-number\">1</span>}]);<br>assert.deepEqual(m1, {a: [<span class=\"hljs-number\">1</span>]});",
      "isRoot": false,
      "uuid": "bae8dcc5-ff6d-4c4d-8c26-1532eee6dd57",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "evaluates recipes late",
      "fullTitle": "recipes evaluates recipes late",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> flag = <span class=\"hljs-literal\">false</span>;<br><span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; {<br>      flag = <span class=\"hljs-literal\">true</span>;<br>      <span class=\"hljs-keyword\">return</span> <span class=\"hljs-number\">3</span>;<br>    }),<br>  }<br>);<br>assert.isNotOk(flag);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.isOk(flag);",
      "isRoot": false,
      "uuid": "bfc26abc-7e70-44aa-bf8c-5970507a818b",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "passes functions through",
      "fullTitle": "recipes passes functions through",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'ho'</span>; }),<br>    c: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'hey'</span>; },<br>  }<br>);<br>assert.instanceOf(config.c, <span class=\"hljs-built_in\">Function</span>);<br>assert.equal(config.b(), <span class=\"hljs-string\">'ho'</span>);<br>assert.equal(config.c(), <span class=\"hljs-string\">'hey'</span>);",
      "isRoot": false,
      "uuid": "b2bee511-aa4e-4b8b-bb87-0abec6b09ba6",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "allows using \"this\" to refer to the config",
      "fullTitle": "recipes allows using \"this\" to refer to the config",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-keyword\">this</span>.a; }),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">1</span>);",
      "isRoot": false,
      "uuid": "8a62b177-d0ea-40c0-9736-634cc4b140e3",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "recipes can return objects",
      "fullTitle": "recipes recipes can return objects",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: <span class=\"hljs-number\">88</span>,<br>    })),<br>  }<br>);<br>assert.equal(config.a.A, <span class=\"hljs-number\">79</span>);<br>assert.equal(config.a.B, <span class=\"hljs-number\">67</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">88</span>);",
      "isRoot": false,
      "uuid": "e6618d56-f48f-410e-aa7c-984a6718715f",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "handles recipe cross-references",
      "fullTitle": "recipes handles recipe cross-references",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>  }<br>);<br>assert.deepEqual(config,<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: {<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: {<br>        A: <span class=\"hljs-number\">79</span>,<br>        B: <span class=\"hljs-number\">67</span><br>      }<br>    }<br>  }<br>);",
      "isRoot": false,
      "uuid": "89eb043a-c46f-4c8c-9f1c-95ff76050115",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "more recipe cross-references",
      "fullTitle": "recipes more recipe cross-references",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">42</span>,<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>    c: ℂ(Ɔ=&gt; Ɔ.b.A),<br>  }<br>);<br>assert.equal(config.a, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">77</span>);",
      "isRoot": false,
      "uuid": "e7660c4c-06a0-40f4-83ff-0a81484eb688",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "works with the service-registry example",
      "fullTitle": "recipes works with the service-registry example",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config0 = {<br>  ver: <span class=\"hljs-string\">'1.0.0'</span>,<br>  mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>  libs: ℂ(Ɔ=&gt; ({<br>    mdlib: Ɔ.mdlib,<br>    jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>  })),<br>  cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>  jqurl: ℂ(Ɔ=&gt; Ɔ.cdn + Ɔ.libs.jqlib + <span class=\"hljs-string\">'-'</span> + Ɔ.ver),<br>};<br><span class=\"hljs-keyword\">const</span> config1 = {<br>  ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>  libs: { funclib: <span class=\"hljs-string\">'ramda'</span>, },<br>  clibs: ℂ(Ɔ=&gt; Ɔ.libs),<br>};<br><span class=\"hljs-keyword\">const</span> config = X(config0, config1);<br>assert.deepEqual(config,<br>  { ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>    mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>    libs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>    cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>    jqurl: <span class=\"hljs-string\">'https://cdn.org/jQuery-1.1.0'</span>,<br>    clibs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>  }<br>);",
      "isRoot": false,
      "uuid": "c3a0b566-9f69-44cb-adfa-d48b8a536855",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "should match the config file",
      "fullTitle": "README example 1: no config-local should match the config file",
      "timedOut": false,
      "duration": 8,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme1'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme1/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'prod'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8870</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}<br>test1_done = <span class=\"hljs-literal\">true</span>;<br>assert.equal(test2_started, <span class=\"hljs-literal\">false</span>, <span class=\"hljs-string\">'test2 started early!'</span>);",
      "isRoot": false,
      "uuid": "75aed7c7-22b9-4fbe-a1b8-75b973c6f119",
      "parentUUID": "519c9808-247f-4c42-8fa7-11260a877789",
      "skipped": false
    },
    {
      "title": "should reflect overrides",
      "fullTitle": "README example 2: with local config should reflect overrides",
      "timedOut": false,
      "duration": 3,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "assert.equal(test1_done, <span class=\"hljs-literal\">true</span>, <span class=\"hljs-string\">'sequential, dammit!'</span>);<br><span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme2'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme2/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'dev'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8880</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}",
      "isRoot": false,
      "uuid": "1f37caad-d1d8-489a-8c1a-55259795d913",
      "parentUUID": "f4679629-7c60-4b38-805f-1442082e6141",
      "skipped": false
    },
    {
      "title": "computes best version correctly",
      "fullTitle": "README example 3: semver example computes best version correctly",
      "timedOut": false,
      "duration": 17,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>        process.chdir(__dirname + <span class=\"hljs-string\">'/readme3'</span>);<br>        <span class=\"hljs-keyword\">try</span> {<br>          <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme3/main.js'</span>);<br>          checkSpec(cfg,<br>            { cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>              libs: { <br>                available: {  <br>                  <span class=\"hljs-string\">'markdown-it'</span>: {<br>                    versions: [ <span class=\"hljs-string\">'1.0.0'</span>, <span class=\"hljs-string\">'1.1.0'</span>, <span class=\"hljs-string\">'2.0.1'</span> ],<br>                  },<br>                },<br>                required: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'&gt;=2.0.0'</span> },<br>                enabled: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'2.0.1'</span> } <br>              } <br>            }<br>          );<br>        }<br>        <span class=\"hljs-keyword\">finally</span> {<br>          process.chdir(saveCwd);<br>        }",
      "isRoot": false,
      "uuid": "3bbcb724-d774-4cee-abf5-0c09f18aeada",
      "parentUUID": "75849633-aaf2-4736-9181-ead80b37e817",
      "skipped": false
    },
    {
      "title": "my favorites",
      "fullTitle": "unicode - works with these unicode characters as symbols my favorites",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-number\">5</span> + Ɔ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">6</span>);",
      "isRoot": false,
      "uuid": "8e851d30-8c74-4f6b-ad7a-f0694ba62eca",
      "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
      "skipped": false
    },
    {
      "title": "others",
      "fullTitle": "unicode - works with these unicode characters as symbols others",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-comment\">// Symbols for recipe</span><br><span class=\"hljs-keyword\">var</span> [ᗏ, ρ, 食, ᐸ, Ⱉ, ᴙ, ᐧ, ǀ, ᗕ, ᑕ, ᐳ, ᐸ] = R.repeat(ℂ.recipe, <span class=\"hljs-number\">20</span>);<br><span class=\"hljs-keyword\">var</span> config = X(<br>  {<br>    <span class=\"hljs-comment\">// One of my favorites, for the looks:</span><br>    m: ᗏ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: ρ(X=&gt; <span class=\"hljs-number\">3</span>),<br>    f: 食(X=&gt; <span class=\"hljs-number\">3</span>),<br>    <span class=\"hljs-comment\">// Symbols just for their looks</span><br>    c: ᐸ(ᐳ=&gt; <span class=\"hljs-number\">3</span> + ᐳ.a),<br>    d: Ⱉ(X=&gt; <span class=\"hljs-number\">3</span> + X.a),<br>    e: ᴙ(X=&gt; <span class=\"hljs-number\">7</span>),<br>    g: ᐧ(ǀ=&gt; <span class=\"hljs-number\">9</span>),<br>    h: ǀ(ᐧ=&gt; <span class=\"hljs-number\">9</span> + ᐧ.a),<br>    i: ᗕ(Ⅰ=&gt; <span class=\"hljs-number\">20</span> + Ⅰ.a),<br>    j: ᑕ(ǀ=&gt; <span class=\"hljs-number\">3</span> + ǀ.a),<br>    <span class=\"hljs-comment\">// I like these, because the symbols are clean and symmetrical, and</span><br>    <span class=\"hljs-comment\">// the \"ᑕ\" looks like a capital \"C\", for \"config\". But the characters</span><br>    <span class=\"hljs-comment\">// for recipe, \"ᐳ\" and \"ᐸ\", look too much like \"&lt;\" and \"&gt;\".</span><br>    k: ᐳ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    n: ᐸ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.f, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.d, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.e, <span class=\"hljs-number\">7</span>);<br>assert.equal(config.g, <span class=\"hljs-number\">9</span>);<br>assert.equal(config.h, <span class=\"hljs-number\">10</span>);",
      "isRoot": false,
      "uuid": "c04ab63b-2f03-44c0-b332-aea4164ec556",
      "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
      "skipped": false
    },
    {
      "title": "can generate a new clone",
      "fullTitle": "views - creating views can generate a new clone",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> seed = ℂ.private.seed;<br><span class=\"hljs-keyword\">const</span> clone = ℂ.private.clone;<br><span class=\"hljs-keyword\">const</span> seed2 = clone();<br><span class=\"hljs-comment\">// This is a different object</span><br>assert.notEqual(seed2, seed);<br>assert.instanceOf(seed, <span class=\"hljs-built_in\">Function</span>);<br>assert.strictEqual(seed.private.clone, clone);",
      "isRoot": false,
      "uuid": "2edc160b-9365-4677-a5d8-f4b1f1933112",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "new object makes a view",
      "fullTitle": "views - creating views new object makes a view",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> view = ℂ.extend({a: <span class=\"hljs-number\">11</span>});<br>assert.equal(<span class=\"hljs-keyword\">typeof</span> view, <span class=\"hljs-string\">'object'</span>);<br>assert(<span class=\"hljs-string\">'__config1__'</span> <span class=\"hljs-keyword\">in</span> view);<br>assert.equal(view.a, <span class=\"hljs-number\">11</span>);<br><span class=\"hljs-comment\">// I used to have a `view` property in c1; bad idea.</span><br>assert(!(<span class=\"hljs-string\">'view'</span> <span class=\"hljs-keyword\">in</span> ℂ));",
      "isRoot": false,
      "uuid": "8e850f77-9370-476d-bf7a-3f515c114d5a",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "can make simple views",
      "fullTitle": "views - creating views can make simple views",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> viewb = ℂ.extend({a: <span class=\"hljs-number\">21</span>, b: <span class=\"hljs-number\">22</span>, c: <span class=\"hljs-number\">23</span>});<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.equal(viewb.b, <span class=\"hljs-number\">22</span>);<br>assert.equal(viewb.c, <span class=\"hljs-number\">23</span>);<br><span class=\"hljs-keyword\">const</span> viewc = ℂ.extend(<br>  {a: <span class=\"hljs-number\">31</span>, b: <span class=\"hljs-number\">32</span>, c: <span class=\"hljs-number\">33</span>},<br>  {a: <span class=\"hljs-number\">35</span>}<br>);<br>assert(viewc.a == <span class=\"hljs-number\">35</span> &amp;&amp; viewc.b == <span class=\"hljs-number\">32</span> &amp;&amp; viewc.c == <span class=\"hljs-number\">33</span>);<br><span class=\"hljs-keyword\">const</span> viewd = ℂ.extend(obja, objb, objc);<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.deepEqual(viewd,<br>  { a: <span class=\"hljs-number\">31</span>,<br>    b: <span class=\"hljs-number\">32</span>,<br>    c: <span class=\"hljs-number\">23</span>,<br>    d: <span class=\"hljs-number\">34</span>,<br>    e: <span class=\"hljs-number\">35</span>,<br>  }<br>);",
      "isRoot": false,
      "uuid": "59e85cc4-0615-4b94-9c0c-e693ccbe8735",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "test two-level-deep views",
      "fullTitle": "views - creating views test two-level-deep views",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> src = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: {a: <span class=\"hljs-number\">3</span>, c: <span class=\"hljs-number\">2</span>}<br>};<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(src);<br>assert.equal(view.a, <span class=\"hljs-number\">1</span>);<br>assert.equal(view.b.a, <span class=\"hljs-number\">3</span>);<br>assert.equal(view.b.c, <span class=\"hljs-number\">2</span>);<br>assert.deepEqual(view, src);",
      "isRoot": false,
      "uuid": "c882fa78-6ae8-495c-b755-1c676df56053",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "deeply nested view",
      "fullTitle": "views - creating views deeply nested view",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> nested = [<br>  {<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      a: <span class=\"hljs-string\">'cat'</span>,<br>      b: {<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        d: <span class=\"hljs-string\">'d'</span>,<br>      },<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">9</span>,<br>    c: {<br>      b: {<br>        a: {<br>          a: <span class=\"hljs-string\">'x'</span>,<br>        },<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        c: <span class=\"hljs-string\">'wart'</span>,<br>        d: <span class=\"hljs-string\">'freckle'</span>,<br>      },<br>      c: <span class=\"hljs-string\">'dog'</span>,<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      b: {<br>        a: {<br>          b: <span class=\"hljs-string\">'y'</span>,<br>          c: <span class=\"hljs-string\">'z'</span>,<br>        },<br>        d: <span class=\"hljs-string\">'mole'</span>,<br>      },<br>      x: <span class=\"hljs-string\">'doggy'</span>,<br>    },<br>    y: <span class=\"hljs-string\">'awesome!'</span>,<br>  },<br>];<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(...nested);<br><span class=\"hljs-keyword\">const</span> exp = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: <span class=\"hljs-number\">2</span>,<br>  c: {<br>    a: <span class=\"hljs-string\">'cat'</span>,<br>    b: {<br>      a: {<br>        a: <span class=\"hljs-string\">'x'</span>,<br>        b: <span class=\"hljs-string\">'y'</span>,<br>        c: <span class=\"hljs-string\">'z'</span>,<br>      },<br>      b: <span class=\"hljs-string\">'b'</span>,<br>      c: <span class=\"hljs-string\">'wart'</span>,<br>      d: <span class=\"hljs-string\">'mole'</span>,<br>    },<br>    c: <span class=\"hljs-string\">'dog'</span>,<br>    x: <span class=\"hljs-string\">'doggy'</span>,<br>  },<br>  y: <span class=\"hljs-string\">'awesome!'</span>,<br>};<br>assert.deepEqual(view, exp);",
      "isRoot": false,
      "uuid": "96f50fc9-f634-4512-8c15-ff6997ab9548",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    }
  ],
  "allPending": [],
  "allPasses": [
    {
      "title": "can generate a new clone",
      "fullTitle": "extend-views can generate a new clone",
      "timedOut": false,
      "duration": 4,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> config0 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">1</span>) );<br>assert.deepEqual(config0, {a: <span class=\"hljs-number\">1</span>, b: <span class=\"hljs-number\">1</span>, c: <span class=\"hljs-number\">3</span>});<br><span class=\"hljs-keyword\">var</span> config01 = Xa( sources.slice(<span class=\"hljs-number\">0</span>, <span class=\"hljs-number\">2</span>) );<br><span class=\"hljs-keyword\">const</span> view01 = {<br>  a: <span class=\"hljs-number\">12</span>,<br>  b: <span class=\"hljs-number\">12</span>,<br>  c: <span class=\"hljs-number\">3</span>,<br>  d: <span class=\"hljs-number\">12</span>,<br>};<br>assert.deepEqual(config01, view01);<br><span class=\"hljs-comment\">// extend using the config instead of the source - same results</span><br><span class=\"hljs-keyword\">var</span> config01_a = X( config0, sources[<span class=\"hljs-number\">1</span>] );<br>assert.deepEqual(config01_a, view01);<br><span class=\"hljs-comment\">// extend all three</span><br><span class=\"hljs-keyword\">const</span> config012 = Xa(sources);<br><span class=\"hljs-keyword\">const</span> merged012 = { a: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  d: { m: { q: <span class=\"hljs-number\">8888</span> }, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  e: <span class=\"hljs-number\">7777</span>,<br>  b: { m: <span class=\"hljs-number\">1234</span>, n: { p: <span class=\"hljs-number\">7777</span>, q: <span class=\"hljs-number\">9876</span> } },<br>  c: <span class=\"hljs-number\">3</span> };<br>assert.deepEqual(config012, merged012);<br><span class=\"hljs-comment\">// check a few different combinations of swapping source -&gt; config</span><br><span class=\"hljs-keyword\">const</span> config012_a = X(config0, sources[<span class=\"hljs-number\">1</span>], sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_a, merged012);<br><span class=\"hljs-keyword\">const</span> config012_b = X(config01, sources[<span class=\"hljs-number\">2</span>]);<br>assert.deepEqual(config012_b, merged012);",
      "isRoot": false,
      "uuid": "d66b3b4b-8bec-457e-b6de-272aab358c6f",
      "parentUUID": "4adde79f-5645-4968-9413-5eb8f4e9556b",
      "skipped": false
    },
    {
      "title": "aggregate",
      "fullTitle": "low-level aggregate",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggregate = ℂ.private.aggregate;<br><span class=\"hljs-keyword\">var</span> t0 = aggregate(<span class=\"hljs-literal\">null</span>, <span class=\"hljs-number\">7</span>);<br>assert.equal(t0.length, <span class=\"hljs-number\">1</span>);<br>assert(t0 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t0[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">7</span>);<br><span class=\"hljs-keyword\">var</span> t1 = aggregate([<span class=\"hljs-number\">9</span>], <span class=\"hljs-number\">8</span>);<br>assert.equal(t1.length, <span class=\"hljs-number\">2</span>);<br>assert(t1 <span class=\"hljs-keyword\">instanceof</span> <span class=\"hljs-built_in\">Array</span>);<br>assert.equal(t1[<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">9</span>);",
      "isRoot": false,
      "uuid": "5790405f-531e-45b9-b049-2d9c071779eb",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggObjects",
      "fullTitle": "low-level aggObjects",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggObjects = ℂ.private.aggObjects;<br><span class=\"hljs-keyword\">var</span> t5 = aggObjects({}, objb);<br><span class=\"hljs-comment\">// t5:  { a: [ 21 ], c: [ 23 ], d: [ 24 ] }</span><br>assert.equal(<span class=\"hljs-built_in\">Object</span>.keys(t5).length, <span class=\"hljs-number\">3</span>);<br>assert.equal(t5[<span class=\"hljs-string\">'a'</span>][<span class=\"hljs-number\">0</span>], <span class=\"hljs-number\">21</span>);",
      "isRoot": false,
      "uuid": "8b3c8c25-d57a-4c7a-9ac7-5b31796f96b5",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggAllObjects",
      "fullTitle": "low-level aggAllObjects",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> aggAllObjects = ℂ.private.aggAllObjects;<br><span class=\"hljs-keyword\">const</span> agg = aggAllObjects(objList);<br>assert.deepEqual(agg,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  });",
      "isRoot": false,
      "uuid": "95442d8b-0dcf-43dd-9b29-af3230d6a470",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "aggregate",
      "fullTitle": "low-level aggregate",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> mapping = ℂ.private.mapping;<br><span class=\"hljs-keyword\">const</span> m0 = mapping(objList);<br>assert.deepEqual(m0,<br>  { a: [<span class=\"hljs-number\">11</span>, <span class=\"hljs-number\">21</span>, <span class=\"hljs-number\">31</span>],<br>    b: [<span class=\"hljs-number\">12</span>, <span class=\"hljs-number\">32</span>],<br>    c: [<span class=\"hljs-number\">13</span>, <span class=\"hljs-number\">23</span>],<br>    d: [<span class=\"hljs-number\">24</span>, <span class=\"hljs-number\">34</span>],<br>    e: [<span class=\"hljs-number\">35</span>]<br>  }<br>);<br><span class=\"hljs-keyword\">const</span> m1 = mapping([{a: <span class=\"hljs-number\">1</span>}]);<br>assert.deepEqual(m1, {a: [<span class=\"hljs-number\">1</span>]});",
      "isRoot": false,
      "uuid": "4efba1f7-6b8e-411d-8baf-dd1500066320",
      "parentUUID": "b5253263-ed6d-4616-9491-c11b5c245e3d",
      "skipped": false
    },
    {
      "title": "evaluates recipes late",
      "fullTitle": "recipes evaluates recipes late",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> flag = <span class=\"hljs-literal\">false</span>;<br><span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; {<br>      flag = <span class=\"hljs-literal\">true</span>;<br>      <span class=\"hljs-keyword\">return</span> <span class=\"hljs-number\">3</span>;<br>    }),<br>  }<br>);<br>assert.isNotOk(flag);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.isOk(flag);",
      "isRoot": false,
      "uuid": "5e2f8e0b-41a5-4a7f-8433-3dc30beb00ff",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "passes functions through",
      "fullTitle": "recipes passes functions through",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'ho'</span>; }),<br>    c: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-string\">'hey'</span>; },<br>  }<br>);<br>assert.instanceOf(config.c, <span class=\"hljs-built_in\">Function</span>);<br>assert.equal(config.b(), <span class=\"hljs-string\">'ho'</span>);<br>assert.equal(config.c(), <span class=\"hljs-string\">'hey'</span>);",
      "isRoot": false,
      "uuid": "239d70e6-51e3-439b-b642-3245932ebeb2",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "allows using \"this\" to refer to the config",
      "fullTitle": "recipes allows using \"this\" to refer to the config",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span>(<span class=\"hljs-params\"></span>) </span>{ <span class=\"hljs-keyword\">return</span> <span class=\"hljs-keyword\">this</span>.a; }),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">1</span>);",
      "isRoot": false,
      "uuid": "5a58d00e-e72a-40ca-8f36-3ba885a7e17a",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "recipes can return objects",
      "fullTitle": "recipes recipes can return objects",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: <span class=\"hljs-number\">88</span>,<br>    })),<br>  }<br>);<br>assert.equal(config.a.A, <span class=\"hljs-number\">79</span>);<br>assert.equal(config.a.B, <span class=\"hljs-number\">67</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">88</span>);",
      "isRoot": false,
      "uuid": "b118afe8-c0a2-4caf-9a05-55e4ba3e9ca7",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "handles recipe cross-references",
      "fullTitle": "recipes handles recipe cross-references",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>  }<br>);<br>assert.deepEqual(config,<br>  { a: {<br>      A: <span class=\"hljs-number\">79</span>,<br>      B: <span class=\"hljs-number\">67</span>,<br>    },<br>    b: {<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: {<br>        A: <span class=\"hljs-number\">79</span>,<br>        B: <span class=\"hljs-number\">67</span><br>      }<br>    }<br>  }<br>);",
      "isRoot": false,
      "uuid": "88ad3340-7438-49f5-b3f8-50fabc6ef930",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "more recipe cross-references",
      "fullTitle": "recipes more recipe cross-references",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config = X(<br>  { a: <span class=\"hljs-number\">42</span>,<br>    b: ℂ(Ɔ=&gt; ({<br>      A: <span class=\"hljs-number\">77</span>,<br>      B: ℂ(Ɔ=&gt; Ɔ.a),<br>    })),<br>    c: ℂ(Ɔ=&gt; Ɔ.b.A),<br>  }<br>);<br>assert.equal(config.a, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.b.A, <span class=\"hljs-number\">77</span>);<br>assert.equal(config.b.B, <span class=\"hljs-number\">42</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">77</span>);",
      "isRoot": false,
      "uuid": "68e18526-c952-44c2-8eeb-5aadfc2ad4cd",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "works with the service-registry example",
      "fullTitle": "recipes works with the service-registry example",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> config0 = {<br>  ver: <span class=\"hljs-string\">'1.0.0'</span>,<br>  mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>  libs: ℂ(Ɔ=&gt; ({<br>    mdlib: Ɔ.mdlib,<br>    jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>  })),<br>  cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>  jqurl: ℂ(Ɔ=&gt; Ɔ.cdn + Ɔ.libs.jqlib + <span class=\"hljs-string\">'-'</span> + Ɔ.ver),<br>};<br><span class=\"hljs-keyword\">const</span> config1 = {<br>  ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>  libs: { funclib: <span class=\"hljs-string\">'ramda'</span>, },<br>  clibs: ℂ(Ɔ=&gt; Ɔ.libs),<br>};<br><span class=\"hljs-keyword\">const</span> config = X(config0, config1);<br>assert.deepEqual(config,<br>  { ver: <span class=\"hljs-string\">'1.1.0'</span>,<br>    mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>    libs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>    cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>    jqurl: <span class=\"hljs-string\">'https://cdn.org/jQuery-1.1.0'</span>,<br>    clibs: {<br>      mdlib: <span class=\"hljs-string\">'markdown-it'</span>,<br>      jqlib: <span class=\"hljs-string\">'jQuery'</span>,<br>      funclib: <span class=\"hljs-string\">'ramda'</span><br>    },<br>  }<br>);",
      "isRoot": false,
      "uuid": "5fb9ff80-ed05-4814-a96e-e03ae92a7263",
      "parentUUID": "40d605bc-8561-4502-a653-b7c22c2231ea",
      "skipped": false
    },
    {
      "title": "should match the config file",
      "fullTitle": "README example 1: no config-local should match the config file",
      "timedOut": false,
      "duration": 8,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme1'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme1/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'prod'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8870</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}<br>test1_done = <span class=\"hljs-literal\">true</span>;<br>assert.equal(test2_started, <span class=\"hljs-literal\">false</span>, <span class=\"hljs-string\">'test2 started early!'</span>);",
      "isRoot": false,
      "uuid": "30fc11b0-df72-43e6-ac28-ac21a5a4aa1f",
      "parentUUID": "519c9808-247f-4c42-8fa7-11260a877789",
      "skipped": false
    },
    {
      "title": "should reflect overrides",
      "fullTitle": "README example 2: with local config should reflect overrides",
      "timedOut": false,
      "duration": 3,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "assert.equal(test1_done, <span class=\"hljs-literal\">true</span>, <span class=\"hljs-string\">'sequential, dammit!'</span>);<br><span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>process.chdir(__dirname + <span class=\"hljs-string\">'/readme2'</span>);<br><span class=\"hljs-keyword\">try</span> {<br>  <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme2/main.js'</span>);<br>  checkSpec(cfg,<br>    { <span class=\"hljs-string\">'current-site'</span>: <span class=\"hljs-string\">'dev'</span>,<br>      sites: {<br>        dev: {<br>          port: <span class=\"hljs-number\">8880</span>,<br>          path: <span class=\"hljs-string\">'/home/acme/project'</span>, <br>        },<br>        prod: {<br>          port: <span class=\"hljs-number\">80</span>,<br>          path: <span class=\"hljs-string\">'/var/acme/data'</span>,<br>        }<br>      }<br>    }<br>  );<br>}<br><span class=\"hljs-keyword\">finally</span> {<br>  process.chdir(saveCwd);<br>}",
      "isRoot": false,
      "uuid": "55f88c74-f42a-4e97-a5d6-54c1e24dff4b",
      "parentUUID": "f4679629-7c60-4b38-805f-1442082e6141",
      "skipped": false
    },
    {
      "title": "computes best version correctly",
      "fullTitle": "README example 3: semver example computes best version correctly",
      "timedOut": false,
      "duration": 17,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> saveCwd = process.cwd();<br>        process.chdir(__dirname + <span class=\"hljs-string\">'/readme3'</span>);<br>        <span class=\"hljs-keyword\">try</span> {<br>          <span class=\"hljs-keyword\">const</span> cfg = <span class=\"hljs-built_in\">require</span>(<span class=\"hljs-string\">'./readme3/main.js'</span>);<br>          checkSpec(cfg,<br>            { cdn: <span class=\"hljs-string\">'https://cdn.org/'</span>,<br>              libs: { <br>                available: {  <br>                  <span class=\"hljs-string\">'markdown-it'</span>: {<br>                    versions: [ <span class=\"hljs-string\">'1.0.0'</span>, <span class=\"hljs-string\">'1.1.0'</span>, <span class=\"hljs-string\">'2.0.1'</span> ],<br>                  },<br>                },<br>                required: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'&gt;=2.0.0'</span> },<br>                enabled: { <span class=\"hljs-string\">'markdown-it'</span>: <span class=\"hljs-string\">'2.0.1'</span> } <br>              } <br>            }<br>          );<br>        }<br>        <span class=\"hljs-keyword\">finally</span> {<br>          process.chdir(saveCwd);<br>        }",
      "isRoot": false,
      "uuid": "e6d2e5bd-ca53-410b-90f4-55b10dafe01d",
      "parentUUID": "75849633-aaf2-4736-9181-ead80b37e817",
      "skipped": false
    },
    {
      "title": "my favorites",
      "fullTitle": "unicode - works with these unicode characters as symbols my favorites",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">var</span> config = X(<br>  { a: <span class=\"hljs-number\">1</span>,<br>    b: ℂ(Ɔ=&gt; <span class=\"hljs-number\">5</span> + Ɔ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">6</span>);",
      "isRoot": false,
      "uuid": "bfcddec3-95db-4a0e-814e-3655756f5712",
      "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
      "skipped": false
    },
    {
      "title": "others",
      "fullTitle": "unicode - works with these unicode characters as symbols others",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-comment\">// Symbols for recipe</span><br><span class=\"hljs-keyword\">var</span> [ᗏ, ρ, 食, ᐸ, Ⱉ, ᴙ, ᐧ, ǀ, ᗕ, ᑕ, ᐳ, ᐸ] = R.repeat(ℂ.recipe, <span class=\"hljs-number\">20</span>);<br><span class=\"hljs-keyword\">var</span> config = X(<br>  {<br>    <span class=\"hljs-comment\">// One of my favorites, for the looks:</span><br>    m: ᗏ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: ρ(X=&gt; <span class=\"hljs-number\">3</span>),<br>    f: 食(X=&gt; <span class=\"hljs-number\">3</span>),<br>    <span class=\"hljs-comment\">// Symbols just for their looks</span><br>    c: ᐸ(ᐳ=&gt; <span class=\"hljs-number\">3</span> + ᐳ.a),<br>    d: Ⱉ(X=&gt; <span class=\"hljs-number\">3</span> + X.a),<br>    e: ᴙ(X=&gt; <span class=\"hljs-number\">7</span>),<br>    g: ᐧ(ǀ=&gt; <span class=\"hljs-number\">9</span>),<br>    h: ǀ(ᐧ=&gt; <span class=\"hljs-number\">9</span> + ᐧ.a),<br>    i: ᗕ(Ⅰ=&gt; <span class=\"hljs-number\">20</span> + Ⅰ.a),<br>    j: ᑕ(ǀ=&gt; <span class=\"hljs-number\">3</span> + ǀ.a),<br>    <span class=\"hljs-comment\">// I like these, because the symbols are clean and symmetrical, and</span><br>    <span class=\"hljs-comment\">// the \"ᑕ\" looks like a capital \"C\", for \"config\". But the characters</span><br>    <span class=\"hljs-comment\">// for recipe, \"ᐳ\" and \"ᐸ\", look too much like \"&lt;\" and \"&gt;\".</span><br>    k: ᐳ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>    n: ᐸ(ᑕ=&gt; <span class=\"hljs-number\">3</span> + ᑕ.a),<br>  }<br>);<br>assert.equal(config.b, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.f, <span class=\"hljs-number\">3</span>);<br>assert.equal(config.c, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.d, <span class=\"hljs-number\">4</span>);<br>assert.equal(config.e, <span class=\"hljs-number\">7</span>);<br>assert.equal(config.g, <span class=\"hljs-number\">9</span>);<br>assert.equal(config.h, <span class=\"hljs-number\">10</span>);",
      "isRoot": false,
      "uuid": "348a7d42-deb6-40b0-8574-37315df7d2d8",
      "parentUUID": "81960a12-d24d-4158-a997-b5f4af097aca",
      "skipped": false
    },
    {
      "title": "can generate a new clone",
      "fullTitle": "views - creating views can generate a new clone",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> seed = ℂ.private.seed;<br><span class=\"hljs-keyword\">const</span> clone = ℂ.private.clone;<br><span class=\"hljs-keyword\">const</span> seed2 = clone();<br><span class=\"hljs-comment\">// This is a different object</span><br>assert.notEqual(seed2, seed);<br>assert.instanceOf(seed, <span class=\"hljs-built_in\">Function</span>);<br>assert.strictEqual(seed.private.clone, clone);",
      "isRoot": false,
      "uuid": "cf17ea55-193e-4809-81f0-d411ab2c01b1",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "new object makes a view",
      "fullTitle": "views - creating views new object makes a view",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> view = ℂ.extend({a: <span class=\"hljs-number\">11</span>});<br>assert.equal(<span class=\"hljs-keyword\">typeof</span> view, <span class=\"hljs-string\">'object'</span>);<br>assert(<span class=\"hljs-string\">'__config1__'</span> <span class=\"hljs-keyword\">in</span> view);<br>assert.equal(view.a, <span class=\"hljs-number\">11</span>);<br><span class=\"hljs-comment\">// I used to have a `view` property in c1; bad idea.</span><br>assert(!(<span class=\"hljs-string\">'view'</span> <span class=\"hljs-keyword\">in</span> ℂ));",
      "isRoot": false,
      "uuid": "1b53d3f6-b4e8-4c1e-9219-613254600975",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "can make simple views",
      "fullTitle": "views - creating views can make simple views",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> viewb = ℂ.extend({a: <span class=\"hljs-number\">21</span>, b: <span class=\"hljs-number\">22</span>, c: <span class=\"hljs-number\">23</span>});<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.equal(viewb.b, <span class=\"hljs-number\">22</span>);<br>assert.equal(viewb.c, <span class=\"hljs-number\">23</span>);<br><span class=\"hljs-keyword\">const</span> viewc = ℂ.extend(<br>  {a: <span class=\"hljs-number\">31</span>, b: <span class=\"hljs-number\">32</span>, c: <span class=\"hljs-number\">33</span>},<br>  {a: <span class=\"hljs-number\">35</span>}<br>);<br>assert(viewc.a == <span class=\"hljs-number\">35</span> &amp;&amp; viewc.b == <span class=\"hljs-number\">32</span> &amp;&amp; viewc.c == <span class=\"hljs-number\">33</span>);<br><span class=\"hljs-keyword\">const</span> viewd = ℂ.extend(obja, objb, objc);<br>assert.equal(viewb.a, <span class=\"hljs-number\">21</span>);<br>assert.deepEqual(viewd,<br>  { a: <span class=\"hljs-number\">31</span>,<br>    b: <span class=\"hljs-number\">32</span>,<br>    c: <span class=\"hljs-number\">23</span>,<br>    d: <span class=\"hljs-number\">34</span>,<br>    e: <span class=\"hljs-number\">35</span>,<br>  }<br>);",
      "isRoot": false,
      "uuid": "e17a5a04-d21c-4e46-8929-bd9c913fd70d",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "test two-level-deep views",
      "fullTitle": "views - creating views test two-level-deep views",
      "timedOut": false,
      "duration": 0,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> src = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: {a: <span class=\"hljs-number\">3</span>, c: <span class=\"hljs-number\">2</span>}<br>};<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(src);<br>assert.equal(view.a, <span class=\"hljs-number\">1</span>);<br>assert.equal(view.b.a, <span class=\"hljs-number\">3</span>);<br>assert.equal(view.b.c, <span class=\"hljs-number\">2</span>);<br>assert.deepEqual(view, src);",
      "isRoot": false,
      "uuid": "86dc0d75-af7f-4383-83ce-3e660310be65",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    },
    {
      "title": "deeply nested view",
      "fullTitle": "views - creating views deeply nested view",
      "timedOut": false,
      "duration": 1,
      "state": "passed",
      "speed": "fast",
      "pass": true,
      "fail": false,
      "pending": false,
      "code": "<span class=\"hljs-keyword\">const</span> nested = [<br>  {<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      a: <span class=\"hljs-string\">'cat'</span>,<br>      b: {<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        d: <span class=\"hljs-string\">'d'</span>,<br>      },<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">9</span>,<br>    c: {<br>      b: {<br>        a: {<br>          a: <span class=\"hljs-string\">'x'</span>,<br>        },<br>        b: <span class=\"hljs-string\">'b'</span>,<br>        c: <span class=\"hljs-string\">'wart'</span>,<br>        d: <span class=\"hljs-string\">'freckle'</span>,<br>      },<br>      c: <span class=\"hljs-string\">'dog'</span>,<br>    }<br>  },<br>  {<br>    a: <span class=\"hljs-number\">1</span>,<br>    b: <span class=\"hljs-number\">2</span>,<br>    c: {<br>      b: {<br>        a: {<br>          b: <span class=\"hljs-string\">'y'</span>,<br>          c: <span class=\"hljs-string\">'z'</span>,<br>        },<br>        d: <span class=\"hljs-string\">'mole'</span>,<br>      },<br>      x: <span class=\"hljs-string\">'doggy'</span>,<br>    },<br>    y: <span class=\"hljs-string\">'awesome!'</span>,<br>  },<br>];<br><span class=\"hljs-keyword\">const</span> view = ℂ.extend(...nested);<br><span class=\"hljs-keyword\">const</span> exp = {<br>  a: <span class=\"hljs-number\">1</span>,<br>  b: <span class=\"hljs-number\">2</span>,<br>  c: {<br>    a: <span class=\"hljs-string\">'cat'</span>,<br>    b: {<br>      a: {<br>        a: <span class=\"hljs-string\">'x'</span>,<br>        b: <span class=\"hljs-string\">'y'</span>,<br>        c: <span class=\"hljs-string\">'z'</span>,<br>      },<br>      b: <span class=\"hljs-string\">'b'</span>,<br>      c: <span class=\"hljs-string\">'wart'</span>,<br>      d: <span class=\"hljs-string\">'mole'</span>,<br>    },<br>    c: <span class=\"hljs-string\">'dog'</span>,<br>    x: <span class=\"hljs-string\">'doggy'</span>,<br>  },<br>  y: <span class=\"hljs-string\">'awesome!'</span>,<br>};<br>assert.deepEqual(view, exp);",
      "isRoot": false,
      "uuid": "7e145e14-f6a0-40a3-8443-2f74cb626f5b",
      "parentUUID": "f5b1a50b-f0c9-47c2-8228-4eb00ab44f38",
      "skipped": false
    }
  ],
  "allFailures": [],
  "copyrightYear": 2017
}