38 lines
1 KiB
JavaScript
38 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);
|
||
|
});
|