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  })