66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
var docShredder = require('../doc-shredder');
|
|
var Q = require("q");
|
|
var del = require('del')
|
|
// delPromise is a 'promise' version of del
|
|
var delPromise = Q.denodeify(del);
|
|
var globby = require('globby');
|
|
var path = require('canonical-path');
|
|
var fs = require('fs');
|
|
var JsDiff = require('diff');
|
|
|
|
describe('doc-shredder', function() {
|
|
|
|
var _shredOptions = {
|
|
examplesDir: "test_source",
|
|
fragmentsDir: "test_fragments"
|
|
};
|
|
|
|
beforeEach(function () {
|
|
|
|
});
|
|
|
|
|
|
it('should generate expected results', function (done) {
|
|
clean(_shredOptions).then(function() {
|
|
return shred(_shredOptions);
|
|
}).then(function() {
|
|
var mdOvrPath = path.join(_shredOptions.fragmentsDir, '**/*.ovr.*');
|
|
var fileNames = globby.sync([mdOvrPath], { ignore: ["**/node_modules/**"] });
|
|
var errs = [];
|
|
fileNames.forEach(function(fileName) {
|
|
console.log('comparing: ' + fileName);
|
|
var origFileName = fileName.replace('.ovr.', '.');
|
|
var origSource = fs.readFileSync(origFileName, 'utf8').replace(/\r\n/g, '\n');
|
|
var expectedSource = fs.readFileSync(fileName, 'utf8').replace(/\r\n/g, '\n');
|
|
var diffs = JsDiff.diffLines(expectedSource, origSource);
|
|
errs = [];
|
|
diffs.forEach(function(diff) {
|
|
if (diff.added) {
|
|
errs.add(' added: --->' + diff.value);
|
|
} else if (diff.removed) {
|
|
errs.add(' removed: -->' + diff.value);
|
|
}
|
|
});
|
|
if (errs.length) {
|
|
errs.unshift('File: ' + origFileName + '\n');
|
|
}
|
|
|
|
expect(errs.length).toEqual(0, '\n' + errs.join(''));
|
|
});
|
|
done();
|
|
}).catch(function(e){
|
|
expect(e).toBeNull();
|
|
})
|
|
});
|
|
|
|
function shred(shredOptions) {
|
|
return docShredder.shred(shredOptions);
|
|
}
|
|
|
|
function clean(shredOptions) {
|
|
var cleanPath = path.join(shredOptions.fragmentsDir, '**/*.*')
|
|
return delPromise([ cleanPath, '!**/*.ovr.*']);
|
|
}
|
|
|
|
});
|