diff --git a/lib/assets.js b/lib/assets.js index 8c31703..d69b101 100644 --- a/lib/assets.js +++ b/lib/assets.js @@ -137,7 +137,7 @@ AssetsExpander.YamlSyntaxError = function(message) { Error.call(this); Error.captureStackTrace(this, this.constructor); - this.name = this.constructor.name; + this.name = 'YamlSyntaxError'; this.message = message; }; AssetsExpander.YamlSyntaxError.prototype.__proto__ = Error.prototype; @@ -146,7 +146,7 @@ AssetsExpander.UnknownGroupError = function(message) { Error.call(this); Error.captureStackTrace(this, this.constructor); - this.name = this.constructor.name; + this.name = 'UnknownGroupError'; this.message = message; }; AssetsExpander.UnknownGroupError.prototype.__proto__ = Error.prototype; @@ -155,7 +155,7 @@ AssetsExpander.UnknownTypeError = function(message) { Error.call(this); Error.captureStackTrace(this, this.constructor); - this.name = this.constructor.name; + this.name = 'UnknownTypeError'; this.message = message; }; AssetsExpander.UnknownTypeError.prototype.__proto__ = Error.prototype; diff --git a/test/assets-test.js b/test/assets-test.js index d9cdf46..2bfae37 100644 --- a/test/assets-test.js +++ b/test/assets-test.js @@ -28,7 +28,11 @@ exports.yamlSuite = vows.describe('incorrect yaml').addBatch({ 'should give YAML error': function(topic) { assert.throws(function() { expanderFor(topic); - }, AssetsExpander.YamlSyntaxError); + }, function(err) { + if ((err instanceof AssetsExpander.YamlSyntaxError) && err.name == 'YamlSyntaxError' && /dedented/.test(err.message)) { + return true; + } + }); } } }); @@ -151,14 +155,22 @@ exports.groupsSuite = vows.describe('expanding assets groups').addBatch({ 'should not fail': function(expanded) { assert.throws(function() { expanderFor('assets.yml').processGroup('unknown', 'type1', { type: 'css' }); - }, AssetsExpander.UnknownTypeError); + }, function(err) { + if ((err instanceof AssetsExpander.UnknownTypeError) && err.name == 'UnknownTypeError' && /unknown/.test(err.message)) { + return true; + } + }); } }, 'expand unknown group': { 'should not fail': function(expanded) { assert.throws(function() { expanderFor('assets.yml').processGroup('stylesheets', 'type1', { type: 'css' }); - }, AssetsExpander.UnknownGroupError); + }, function(err) { + if ((err instanceof AssetsExpander.UnknownGroupError) && err.name == 'UnknownGroupError' && /stylesheets/.test(err.message) && /type1/.test(err.message)) { + return true; + } + }); } }, 'expanding group #1 from assets.yml': {