title: How to provide chai expect with custom error message for mocha unit test?
body: <p>I have a mocha test using chai's expect:</p>
  
  <pre><code>it("should parse sails out of cache file", async () =&gt; {
      const sailExtractor = new Extractor();
      const result = await sailExtractor.extract("test.xml");
  
      try {
          expect(result.length).to.be.greaterThan(0);
          const withMandatoryFlight = result.filter((cruises) =&gt; {
              return cruises.hasMandatoryFlight === true;
          });
          expect(withMandatoryFlight.length).to.be.greaterThan(0);
          const cruiseOnly = result.filter((cruises) =&gt; {
              return cruises.hasMandatoryFlight === false;
          });
  
          expect(cruiseOnly.length).to.be.greaterThan(0);
  
          return Promise.resolve();
      } catch (e) {
          return Promise.reject(e);
      }
  }
  </code></pre>
  
  <p>Now if one <code>to.be.greaterThan(0)</code> expectation fails, the error output on mocha is not dev-friendly:</p>
  
  <pre><code> AssertionError: expected 0 to be above 0
        at Assertion.assertAbove (node_modules/chai/lib/chai/core/assertions.js:571:12)
        at Assertion.ctx.(anonymous function) [as greaterThan] (node_modules/chai/lib/chai/utils/addMethod.js:41:25)
        at _callee2$ (tests/unit/operator/croisiEurope/CroisXmlExtractorTest.js:409:61)
        at tryCatch (node_modules/regenerator-runtime/runtime.js:65:40)
        at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:303:22)
        at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:117:21)
        at fulfilled (node_modules/tslib/tslib.js:93:62)
        at &lt;anonymous&gt;
        at process._tickDomainCallback (internal/process/next_tick.js:228:7)
  </code></pre>
  
  <p>I would like to replace it with something more human-friendly. Is there a way to tell chai to use a customize error message?</p>
  
  <p>I want to be able to use it like this pseudo-code:</p>
  
  <pre><code> expect(result.length)
        .to.be.greaterThan(0)
        .withErrorMessage("It should parse at least one sail out of the flatfile, but result is empty");
  </code></pre>
  
  <p>And then the failing mocha error should print:</p>
  
  <pre><code> AssertionError: It should parse at least one sail out of the flatfile, but result is empty
  </code></pre>