Skip to content

TypeError: undefined is not a function #6

@weilu

Description

@weilu
// index.js
var crypto = require('crypto')

module.exports = {
  randomBytes: crypto.randomBytes
}
// test/index.js
var proxyquire = require('proxyquireify')(require)
// var proxyquire = require('proxyquire') //proxyquire works
var stubs = {
  'crypto': {
    randomBytes: function(size){
      var buffer = new Buffer(size)
      buffer.fill(0)
      return buffer
    }
  }
}
var assert = require('assert')
var randomBytes = proxyquire('../', stubs).randomBytes

describe('randomBytes', function(){
  it('works', function(){
    assert.equal(randomBytes(1).toString('hex'), '00')
  })
})
// build.js
var proxyquire = require('proxyquireify');
var fs = require('fs')

proxyquire.browserify()
.require(require.resolve('./test/index.js'), {entry: true})
.bundle()
.pipe(fs.createWriteStream(__dirname + '/test/bundle.js'));
node build.js && mocha test/bundle.js 

/Users/weilu/Workspace/test-proxyquirify/test/bundle.js:3043
d requires to make browserify include dependencies in the bundle */;require('.
                                                                    ^
TypeError: undefined is not a function

If I use proxyquire without browserify and proxyquireify (uncomment line 2 in test/index.js), my test passes.

I've put together the code above in a repo: https://github.com/weilu/test-proxyquireify The error can be reproduced by running npm test

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions