execFile.test.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* eslint-disable max-len, no-unused-expressions */
  2. var should = require('should')
  3. var execFile = require('../lib/execFile.js')
  4. var path = require('path')
  5. var fs = require('fs')
  6. var testScript = path.join(__dirname, 'lib', 'testscript.js')
  7. describe('execFile', function() {
  8. it('removes all the listeners from stdout/stderr to avoid buffering output, but enjoys all the good cleanup code node.js has to offer', function(done) {
  9. var child = execFile()('node', [testScript], function(err, stdout, stderr) {
  10. err.should.be.an.Error
  11. stdout.should.eql('')
  12. stderr.should.eql('')
  13. done()
  14. })
  15. })
  16. it('does not buffer stdout', function(done) {
  17. var opts = {
  18. bufferStderr: true,
  19. }
  20. var child = execFile(opts)('node', [testScript], function(err, stdout, stderr) {
  21. err.should.be.an.Error
  22. stdout.should.eql('')
  23. stderr.should.containEql('throw new Error(\'error\')')
  24. done()
  25. })
  26. })
  27. it('does not buffer stderr', function(done) {
  28. var opts = {
  29. bufferStdout: true,
  30. }
  31. var child = execFile(opts)('node', [testScript], function(err, stdout, stderr) {
  32. err.should.be.an.Error
  33. stdout.should.eql('123\n')
  34. stderr.should.eql('')
  35. done()
  36. })
  37. })
  38. it('buffers everything', function(done) {
  39. var opts = {
  40. bufferStdout: true,
  41. bufferStderr: true,
  42. }
  43. var child = execFile(opts)('node', [testScript], function(err, stdout, stderr) {
  44. err.should.be.an.Error
  45. stdout.should.eql('123\n')
  46. stderr.should.containEql('throw new Error(\'error\')')
  47. done()
  48. })
  49. })
  50. })