const controlTree = require('./control-tree');

function testTree(param) {
  return {
    action: () => {
      console.log('Tree init');
    },
    test: () => {
      return param.a > param.b;
    },
    true: () => {
      return {
        action: () => {
          console.log('a > b is true')
        }
      }
    },
    false: () => {
      return {
        type: 'ASYNC',
        action: () => {
          console.log('a > b is false');
        },
        test: (cb) => {
          setTimeout(() => {
            if (param.b > param.a) {
              cb(true);
            } else {
              cb(false);
            }
          }, 2000);
        },
        true: () => {
          console.log('b > a is true');
        },
        false: () => {
          console.log('b > a is false');
        }
      }
    }
  }
}

controlTree(testTree({
  a: 10,
  b: 12
}));

@@ -39,16 +39,55 @@
 -tree');
+%0Aconst assert = require('chai').assert;
 %0A%0Afuncti
@@ -906,8 +906,1663 @@
 12%0A%7D));%0A
+%0Adescribe('noasync-test', () =%3E %7B%0A  it('should return largest as 2', done =%3E %7B%0A    function testTree(param) %7B%0A      return %7B%0A        action: () =%3E %7B%0A          console.log('Tree init');%0A        %7D,%0A        test: () =%3E %7B%0A          return param.a %3E param.b;%0A        %7D,%0A        true: () =%3E %7B%0A          return %7B%0A            action: () =%3E %7B%0A              param.largest = param.a;%0A              console.log('a %3E b is true');%0A            %7D%0A          %7D%0A        %7D,%0A        false: () =%3E %7B%0A          param.largest = param.b;%0A        %7D%0A      %7D%0A    %7D%0A    let testObj = %7B%0A      a: 1,%0A      b: 2%0A    %7D;%0A    controlTree(testTree(testObj));%0A    done(assert.equal(testObj.largest, 2));%0A  %7D);%0A%0A  it('should properly handle nested if', done =%3E %7B%0A    let testObj = %7B%0A      a: 6,%0A      b: 5,%0A      c: 7,%0A      largest: 0%0A    %7D%0A%0A    function testTree(param) %7B%0A      return %7B%0A        test: () =%3E %7B%0A          return param.a %3E param.b;%0A        %7D,%0A        true: () =%3E %7B%0A          return %7B%0A            action: () =%3E %7B%0A              param.largest = param.a;%0A            %7D,%0A            test: () =%3E %7B%0A              return param.largest %3E param.c;%0A            %7D,%0A            false: () =%3E %7B%0A              param.largest = param.c;%0A            %7D%0A          %7D;%0A        %7D,%0A        false: () =%3E %7B%0A          return %7B%0A            action: () =%3E %7B%0A              param.largest = param.b;%0A            %7D,%0A            test: () =%3E %7B%0A              return param.largest %3E param.c;%0A            %7D,%0A            false: () =%3E %7B%0A              param.largest = param.c;%0A            %7D%0A          %7D;%0A        %7D%0A      %7D;%0A    %7D;%0A%0A    controlTree(testTree(testObj));%0A%0A    done(assert.equal(testObj.largest, 7));%0A  %7D);%0A%7D);%0A

Write non-async tests