var assert = require('assert') var fs = require('fs'); module.exports = function (gm, dir, finish, GM) { /* assert.throws(function () { gm.stream() }, /expects a callback/); assert.throws(function () { gm.stream('PNG') }, /expects a callback/); */ if (!GM.integration) return finish(); withCallback(function (err) { if (err) return finish(err); withoutCallback(function (err) { if (err) return finish(err); checkOutputFormat(finish); }); }); function withCallback(done) { gm .stream('PNG', function streamOut (err, stdout, stderr) { if (err) return done(err); stdout.pipe(fs.createWriteStream(dir + '/streamOut.png')); stdout.on('error', done); stdout.on('close', done); }); } function withoutCallback(done) { var stream = gm.stream('PNG') stream.on('error', done) stream.pipe(fs.createWriteStream(dir + '/streamOut2.png')) stream.on('end', done) } function checkOutputFormat(done) { var stream = gm.stream('PNG') stream.on('error', done) GM(stream).format(function (err, value) { if (err) return done(err) assert.equal(value.toLowerCase(), 'png') done() }) } }