| '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]); |
| }); |