function runTestcase()

in spec/command_tests/table_spec.ts [71:104]


  function runTestcase(commandName: string) {
    let itName = 'should correctly call "' + commandName + '"';
    let tableEntry = table[commandName];
    if (tableEntry == null) {
      return it(itName);
    }
    let testcases: Testcase[] = Array.isArray(tableEntry) ? tableEntry : [tableEntry];
    testcases.forEach((testcase, i) => {
      let caseName = itName + (tableEntry === testcases ? ' (#' + i + ')' : '');
      if (testcase.skip) {
        return it(caseName);
      }
      it(caseName, (done) => {
        let driver = driverFactory();
        (driver as any)[commandName].apply(driver, testcase.args || []).then(
          (results: Testcase) => {
            expect(results.result).toEqual(testcase.result == null ? null : testcase.result);
            if (testcase.session) {
              for (let varname in testcase.session) {
                expect((results.session as any)[varname]).
                    toEqual((testcase.session as any)[varname]);
              }
            }
            if (testcase.params) {
              for (let paramName in testcase.params) {
                expect(results.params[paramName]).toEqual(testcase.params[paramName]);
              }
            }
            done();
          }
        );
      });
    });
  }