github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/sdk/javascript/spec/messaging/deferred_test.js (about) 1 /** 2 * Copyright 2017 Intel Corporation 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * ------------------------------------------------------------------------------ 16 */ 17 18 'use strict' 19 20 const assert = require('assert') 21 22 const Deferred = require('../../messaging/deferred') 23 24 describe('Deferred', () => { 25 describe('resolve', () => { 26 it('should immediately return the value of a resolved deferred', () => { 27 let deferred = new Deferred() 28 29 deferred.resolve('my result') 30 31 return deferred.promise.then((result) => { 32 assert.equal('my result', result) 33 }) 34 }) 35 36 it('should not return until resolved.', () => { 37 let deferred = new Deferred() 38 39 let promise = deferred.promise.then((result) => { 40 assert.equal('my result', result) 41 }) 42 43 deferred.resolve('my result') 44 45 return promise 46 }) 47 }) 48 49 describe('reject', () => { 50 it('should return a undefined error when none is set', (done) => { 51 let deferred = new Deferred() 52 53 deferred.promise.catch((e) => { 54 assert.equal(undefined, e) 55 done() 56 }) 57 .then(() => { 58 assert.ok(false, 'Did not catch') 59 }) 60 61 deferred.reject() 62 }) 63 64 it('should return the error when one is set', (done) => { 65 let deferred = new Deferred() 66 67 deferred.promise.catch((e) => { 68 assert.equal('my error msg', e.message) 69 done() 70 }) 71 .then(() => { 72 assert.ok(false, 'Did not catch') 73 }) 74 75 deferred.reject(new Error('my error msg')) 76 }) 77 }) 78 })