forked from angular/angular.io
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdoc-shredder.spec.js
62 lines (52 loc) · 1.8 KB
/
doc-shredder.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var docShredder = require('../doc-shredder');
var del = require('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 del([ cleanPath, '!**/*.ovr.*']);
}
});