title: AssertionError: the given combination of arguments (promise and string) is invalid for this assertion
body: <p>I try use wdio + moch + chai.
  This is code, which wdio generate when I config it.</p>
  <pre><code>import LoginPage from  '../pageobjects/login.page';
  import SecurePage from '../pageobjects/secure.page';
  
  describe('My Login application', () =&gt; {
  it('should login with valid credentials', async () =&gt; {
      await LoginPage.open();
  
      await LoginPage.login('tomsmith', 'SuperSecretPassword!');
      await expect(SecurePage.flashAlert).toBeExisting();
      await expect(SecurePage.flashAlert).toHaveTextContaining(
          'You logged into a secure area!');
    });
  });
  </code></pre>
  <p>Its ok, everything is working. But when I try add chai and use assertions from chai, my tests fail with:</p>
  <p>AssertionError: the given combination of arguments (promise and string) is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a string.</p>
  <p>I use wdio in async mode. This is my code with chai</p>
  <pre><code>import * as chai from &quot;chai&quot;;
  
  import LoginPage from  '../pageobjects/login.page';
  import SecurePage from '../pageobjects/secure.page';
  
  const {expect} = chai
  
  describe('My Login application', () =&gt; {
   it('should login with valid credentials', async () =&gt; {
      await LoginPage.open();
  
      await LoginPage.login('tomsmith', 'SuperSecretPassword!');
      await expect(SecurePage.flashAlert).exist;
      await expect(SecurePage.flashAlert).contain(
          'You logged into a secure area!');
     });
  });
  </code></pre>