66 lines
1.8 KiB
JavaScript
66 lines
1.8 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 globule = require('globule');
|
||
|
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 = globule.find([mdOvrPath]);
|
||
|
var errs = [];
|
||
|
fileNames.forEach(function(fileName) {
|
||
|
console.log('comparing: ' + fileName);
|
||
|
var origFileName = fileName.replace('.ovr.', '.');
|
||
|
var origSource = fs.readFileSync(origFileName, 'utf8');
|
||
|
var expectedSource = fs.readFileSync(fileName, 'utf8');
|
||
|
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.*']);
|
||
|
}
|
||
|
|
||
|
});
|