reject.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. var failIfThrows = function (done) {
  2. 'use strict';
  3. return function (e) {
  4. done(e || new Error());
  5. };
  6. };
  7. describe('Promise.reject', function () {
  8. 'use strict';
  9. it('should not be enumerable', function () {
  10. expect(Promise).ownPropertyDescriptor('reject').to.have.property('enumerable', false);
  11. });
  12. it('should return a rejected promise', function (done) {
  13. var value = {};
  14. Promise.reject(value).then(failIfThrows(done), function (result) {
  15. expect(result).to.equal(value);
  16. done();
  17. });
  18. });
  19. it('throws when receiver is a primitive', function () {
  20. var promise = Promise.reject();
  21. expect(function () { Promise.reject.call(undefined, promise); }).to['throw']();
  22. expect(function () { Promise.reject.call(null, promise); }).to['throw']();
  23. expect(function () { Promise.reject.call('', promise); }).to['throw']();
  24. expect(function () { Promise.reject.call(42, promise); }).to['throw']();
  25. expect(function () { Promise.reject.call(false, promise); }).to['throw']();
  26. expect(function () { Promise.reject.call(true, promise); }).to['throw']();
  27. promise.then(null, function () {}); // silence unhandled rejection errors in Chrome
  28. });
  29. });