Skip to content
Snippets Groups Projects
Select Git revision
  • e4f07e3baf3f724e624e7e75877e6c3e459420c0
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

unit-tools.ts

Blame
  • unit-tools.ts 1.93 KiB
    // Source file from duniter: Crypto-currency software to manage libre currency such as Ğ1
    // Copyright (C) 2018  Cedric Moreau <cem.moreau@gmail.com>
    //
    // This program is free software: you can redistribute it and/or modify
    // it under the terms of the GNU Affero General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU Affero General Public License for more details.
    
    import * as assert from 'assert'
    
    const should = require('should')
    
    export async function shouldThrow(promise:Promise<any>) {
      let error = false
      try {
        await promise
      } catch (e) {
        error = true
      }
      (promise as any).should.be.rejected()
      (error as any).should.equal(true)
    }
    
    export async function shouldNotFail<T>(promise:Promise<T>) {
      try {
        await promise
      } catch(e) {
        let err = e;
        /*if (typeof e === 'string') {
          err = JSON.parse((e as any).message)
        }*/
        should.not.exist(err);
      }
    }
    
    export const shouldFail = async (promise:Promise<any>, message:string|null = null) => {
      try {
        await promise;
        throw '{ "message": "Should have thrown an error" }'
      } catch(e) {
        let err = e
        if (typeof e === "string") {
          err = JSON.parse(e)
        }
        err.should.have.property('message').equal(message);
      }
    }
    
    export const assertThrows = async (promise:Promise<any>, message:string|null = null) => {
      try {
        await promise;
        throw "Should have thrown"
      } catch(e) {
        if (e === "Should have thrown") {
          throw e
        }
        assert.equal(e.message || e, message)
      }
    }
    
    
    export const assertThrowsSync = (f:() => any) => {
      try {
        f()
        throw "Should have thrown"
      } catch(e) {
        if (e === "Should have thrown") {
          throw e
        }
      }
    }