diff --git a/lib/annotations/example.js b/lib/annotations/example.js index 2be26c57..0ab75eff 100644 --- a/lib/annotations/example.js +++ b/lib/annotations/example.js @@ -81,6 +81,7 @@ module.exports = (env) => { } } } + /* istanbul ignore else */ if (sass && !sassCompiler) { try { sassCompiler = sass.initAsyncCompiler(); diff --git a/test/js/testAnnotations.js b/test/js/testAnnotations.js index 46e1e04d..a5bf110a 100644 --- a/test/js/testAnnotations.js +++ b/test/js/testAnnotations.js @@ -1334,6 +1334,63 @@ describe('example annotation', () => { .catch(done); }); + it('uses custom `sass.implementation` string [sass-embedded]', function (done) { + const data = [ + { + example: [ + { + type: 'scss', + code: '/* just a placeholder */', + }, + ], + }, + ]; + const env = Object.assign({}, this.env, { + herman: { + sass: { + implementation: 'sass-embedded', + }, + }, + }); + const example = annotations.example(env); + example + .resolve(data) + .then(() => { + assert.equal(data[0].example[0].rendered, data[0].example[0].code); + done(); + }) + .catch(done); + }); + + it('custom `sass.implementation` instance [sass-embedded]', function (done) { + const data = [ + { + example: [ + { + type: 'scss', + code: '/* just a placeholder */', + }, + ], + }, + ]; + const env = Object.assign({}, this.env, { + herman: { + sass: { + // eslint-disable-next-line global-require + implementation: require('sass-embedded'), + }, + }, + }); + const example = annotations.example(env); + example + .resolve(data) + .then(() => { + assert.equal(data[0].example[0].rendered, data[0].example[0].code); + done(); + }) + .catch(done); + }); + it('skips non-html, non-njk, non-scss items', function (done) { const data = [ {