diff --git a/index.js b/index.js index 924976a1..601ccd78 100755 --- a/index.js +++ b/index.js @@ -317,7 +317,18 @@ module.exports.interpolator = { vertexSplitQuadraticBasisSpline: 'vsqbs' }; Sharp.prototype.interpolateWith = function(interpolator) { - this.options.interpolator = interpolator; + var isValid = false; + for (var key in module.exports.interpolator) { + if (module.exports.interpolator[key] === interpolator) { + isValid = true; + break; + } + } + if (isValid) { + this.options.interpolator = interpolator; + } else { + throw new Error('Invalid interpolator ' + interpolator); + } return this; }; diff --git a/test/unit/interpolation.js b/test/unit/interpolation.js index 732fc44f..6349b149 100755 --- a/test/unit/interpolation.js +++ b/test/unit/interpolation.js @@ -94,15 +94,13 @@ describe('Interpolation', function() { }); it('unknown interpolator throws', function(done) { - sharp(fixtures.inputJpg) - .resize(320, 240) - .interpolateWith('nonexistant') - .toBuffer() - .catch(function (e) { - assert( - e.toString().match(/VipsInterpolate: class "nonexistant" not found/) - ); - }) - .finally(done); + var isValid = false; + try { + sharp().interpolateWith('nonexistant'); + isValid = true; + } catch (e) {} + assert(!isValid); + done(); }); + }); diff --git a/test/unit/normalize.js b/test/unit/normalize.js index 4d96781e..73a85ba3 100755 --- a/test/unit/normalize.js +++ b/test/unit/normalize.js @@ -34,7 +34,7 @@ describe('Normalization', function () { sharp(fixtures.inputJpgWithLowContrast) .gamma() .greyscale() - .normalize() + .normalize(true) .raw() .toBuffer(function (err, data, info) { if (err) throw err;