Skip to content

Commit 9a15861

Browse files
wrap node-sass error message in Error object
closes #15 - when using Metalsmith cli, errors are expected to an actual error object, not a string
1 parent d2f4610 commit 9a15861

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

lib/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,18 @@
3232
includePaths: includes,
3333
imagePath: imagePath,
3434
outputStyle: outputStyle,
35-
success: function(css) {
35+
success: function handleSuccess(css) {
3636
// replace contents
3737
file.contents = new Buffer(css);
3838
// rename file extension
3939
files[path.join(outputDir, path.basename(filename).replace('.scss', '.css'))] = file;
4040
delete files[filename];
4141
done();
4242
},
43-
error: function(err) {
43+
error: function handleError(err) {
44+
if (typeof err === 'string') {
45+
err = new Error(err);
46+
}
4447
done(err);
4548
}
4649
});

test/test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,15 @@
105105
});
106106
});
107107

108-
it('should fail when invalid file provided', function(done) {
108+
it('should correctly report errors to Metalsmith', function(done) {
109109
metalsmith(__dirname)
110110
.source('fixtures/invalid/src')
111111
.destination('fixtures/invalid/build')
112112
.use(sass({
113113
outputStyle: 'expanded'
114114
}))
115115
.build(function (err) {
116-
assert.notEqual(err, null, "Error should be set.");
116+
assert(err.message && /aninvalidrule/.test(err.message));
117117
assert(!exists(join(__dirname, 'fixtures/invalid/build/invalid.scss')));
118118
done();
119119
});

0 commit comments

Comments
 (0)