title: How to 'reverse' the rejection/fulfillment of a promise?
body: <p>For a mocha test, I want to assert that a promise will eventually reject.</p>
  
  <p>I don't want to use chai-as-promised. I'd prefer to just use Node's standard assert module, and to just use standard ES6 promises.</p>
  
  <p>The best I've come up with is this, but it feels slightly hacky:</p>
  
  <pre><code>it('foo should reject given bad data', function () {
    var rejected;
  
    return foo('bad data').catch(function (err) {
      rejected = true;
    }).then(function () {
      assert(rejected);
    });
  });
  </code></pre>
  
  <p>Can anyone suggest a neater, more expressive way to 'reverse' a promise, so rejection becomes fulfillment and vice versa?</p>