| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 'use strict';var assert = require('assert');var crypto = require('crypto');var hash = require('../index');var validSha1 = /^[0-9a-f]{40}$/i;var validBase64 = /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/==]{4})$/;describe('hash() without crypto.getHashes', function() {  var getHashes_;  beforeEach(function() {    getHashes_ = crypto.getHashes;    delete crypto.getHashes;  });    afterEach(function() {    crypto.getHashes = getHashes_;  });    it('should work fine for SHA1', function() {    assert.ok(validSha1.test(hash(42)), 'hash some value');    assert.ok(validSha1.test(hash(NaN)), 'hash some value');  });});describe('hash() without Duplex streams', function() {  var createHash_;  beforeEach(function() {    createHash_ = crypto.createHash;    crypto.createHash = function(algorithm) {      var strm = createHash_(algorithm);            return {        update: strm.write.bind(strm),        digest: strm.digest.bind(strm)      };    };  });    afterEach(function() {    crypto.createHash = createHash_;  });    it('should work fine for SHA1 without .write()/.read()', function() {    assert.ok(validSha1.test(hash(42)), 'hash some value');    assert.ok(validSha1.test(hash(NaN)), 'hash some value');  });    it('should work fine for SHA1 without .write()/.read() with base64', function() {    assert.ok(validBase64.test(hash(42, {encoding: 'base64'})), 'hash some value');    assert.ok(validBase64.test(hash(NaN, {encoding: 'base64'})), 'hash some value');  });    if (typeof Buffer !== 'undefined') {    it('should work fine for SHA1 without .write()/.read() with buffer', function() {      assert.ok(Buffer.isBuffer(hash(42, {encoding: 'buffer'})), 'hash some value');      assert.ok(Buffer.isBuffer(hash(NaN, {encoding: 'buffer'})), 'hash some value');    });  }});
 |