title: WebdriverIO-Jasmine Async function did not complete within 10000ms
body: <p>I am using WDIO with Jasmine and Chai.</p>
  <p>I am getting the below error and I have been trying to find the root cause for more than a day now.</p>
  <p>Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)</p>
  <p>Code:</p>
  <pre><code>describe('Lead Routing Functionality', () =&gt; {
      beforeEach(function () {
          LightningLeadPage.open();
          LightningLeadPage.login();
          console.log('[TEST STEP INFO]: Checking Header: ');
      });
  it('Verify validation', () =&gt; {
          LightningLeadPage.click_app_launcher();
  });
  </code></pre>
  <pre><code>              *************
  </code></pre>
  <pre><code>export default class Lightning_Page {
  click_app_launcher() {
      console.log(&quot;[TEST STEP INFO]: Verify App launcher icon is present. &quot;);
      console.log('DEBUG : I am waiting...')
      this.appLauncher().waitForExist(this.waitDuration());
      console.log(&quot;[TEST STEP INFO]: Clicking on App Launcher&quot;);
      this.appLauncher().click();
    }
  
  </code></pre>
  <p>I noticed console.log('DEBUG : I am waiting...') is not printed on console.</p>
  <pre><code>Error log:
  [0-0] Error in &quot;Verify validation&quot;
  Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
      at &lt;Jasmine&gt;
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)
  [0-0] DEPRECATION: An asynchronous before/it/after function took a done callback but also returned a promise. This is not supported and will stop working in the future. Either remove the done callback (recommended) or change the function to not return a promise.
  
  </code></pre>
  <p>config.js values:</p>
  <pre><code>waitforTimeout: 10000,
      connectionRetryTimeout: 90000,
      connectionRetryCount: 3,
      wdioRetries:3,
  
  jasmineNodeOpts: {
          defaultTimeoutInterval: (24 * 60 * 60 * 1000),
          expectationResultHandler: function(passed, assertion) {
              // do something
          }
      },
  </code></pre>