presentations/highlight-js/test/detect/index.js

37 lines
1 KiB
JavaScript

'use strict';
let bluebird = require('bluebird');
let fs = bluebird.promisifyAll(require('fs'));
let hljs = require('../../build');
let path = require('path');
let utility = require('../utility');
function testAutoDetection(language) {
const languagePath = utility.buildPath('detect', language);
it(`should have test for ${language}`, function() {
return fs.statAsync(languagePath)
.then(path => path.isDirectory().should.be.true);
});
it(`should be detected as ${language}`, function() {
return fs.readdirAsync(languagePath)
.map(function(example) {
const filename = path.join(languagePath, example);
return fs.readFileAsync(filename, 'utf-8');
})
.each(function(content) {
const expected = language,
actual = hljs.highlightAuto(content).language;
actual.should.equal(expected);
});
});
}
describe('hljs.highlightAuto()', function() {
const languages = hljs.listLanguages();
languages.filter(hljs.autoDetection).forEach(testAutoDetection);
});