46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
'use strict';
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const test = require('ava');
|
|
const execa = require('execa');
|
|
const tempy = require('tempy');
|
|
const binCheck = require('bin-check');
|
|
const binBuild = require('bin-build');
|
|
const compareSize = require('compare-size');
|
|
const jpegtran = require('..');
|
|
|
|
test('rebuild the jpegtran binaries', async t => {
|
|
const tmp = tempy.directory();
|
|
const cfg = [
|
|
'./configure --disable-shared',
|
|
`--prefix="${tmp}" --bindir="${tmp}"`
|
|
].join(' ');
|
|
|
|
await binBuild.url('https://downloads.sourceforge.net/project/libjpeg-turbo/1.5.1/libjpeg-turbo-1.5.1.tar.gz', [
|
|
cfg,
|
|
'make install'
|
|
]);
|
|
|
|
t.true(fs.existsSync(path.join(tmp, 'jpegtran')));
|
|
});
|
|
|
|
test('return path to binary and verify that it is working', async t => {
|
|
t.true(await binCheck(jpegtran, ['-version']));
|
|
});
|
|
|
|
test('minify a JPG', async t => {
|
|
const tmp = tempy.directory();
|
|
const src = path.join(__dirname, 'fixtures/test.jpg');
|
|
const dest = path.join(tmp, 'test.jpg');
|
|
const args = [
|
|
'-outfile',
|
|
dest,
|
|
src
|
|
];
|
|
|
|
await execa(jpegtran, args);
|
|
const res = await compareSize(src, dest);
|
|
|
|
t.true(res[dest] < res[src]);
|
|
});
|