File: //proc/1526/task/1529/cwd/tana/frontend/node_modules/jpegtran-bin/test/test.js
'use strict';
/* eslint-env mocha */
var assert = require('assert');
var execFile = require('child_process').execFile;
var fs = require('fs');
var path = require('path');
var BinBuild = require('bin-build');
var binCheck = require('bin-check');
var compareSize = require('compare-size');
var mkdirp = require('mkdirp');
var rimraf = require('rimraf');
var tmp = path.join(__dirname, 'tmp');
beforeEach(function () {
mkdirp.sync(tmp);
});
afterEach(function () {
rimraf.sync(tmp);
});
it('rebuild the jpegtran binaries', function (cb) {
var cfg = [
'./configure --disable-shared',
'--prefix="' + tmp + '" --bindir="' + tmp + '"'
].join(' ');
new BinBuild()
.src('https://downloads.sourceforge.net/project/libjpeg-turbo/1.5.1/libjpeg-turbo-1.5.1.tar.gz')
.cmd(cfg)
.cmd('make install')
.run(function (err) {
if (err) {
cb(err);
return;
}
assert(fs.statSync(path.join(tmp, 'jpegtran')).isFile());
cb();
});
});
it('return path to binary and verify that it is working', function () {
var args = [
'-outfile', path.join(tmp, 'test.jpg'),
path.join(__dirname, 'fixtures/test.jpg')
];
return binCheck(require('../'), args).then(assert);
});
it('minify a JPG', function (cb) {
var src = path.join(__dirname, 'fixtures/test.jpg');
var dest = path.join(tmp, 'test.jpg');
var args = [
'-outfile', dest,
src
];
execFile(require('../'), args, function (err) {
if (err) {
cb(err);
return;
}
compareSize(src, dest, function (err, res) {
if (err) {
cb(err);
return;
}
assert(res[dest] < res[src]);
cb();
});
});
});