summaryrefslogtreecommitdiffstats
path: root/lib/parse
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-28 10:37:52 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-28 10:37:52 +0200
commit9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e (patch)
treea3f83548cb51d5ca9e601a2c5207a20367e0d82d /lib/parse
parent35d352bbebee0b5adebf3f877342ff28e57a7a03 (diff)
downloadgitbook-9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e.zip
gitbook-9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e.tar.gz
gitbook-9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e.tar.bz2
Add tests for parseIgnore
Diffstat (limited to 'lib/parse')
-rw-r--r--lib/parse/__tests__/parseBook.js2
-rw-r--r--lib/parse/__tests__/parseGlossary.js2
-rw-r--r--lib/parse/__tests__/parseIgnore.js40
-rw-r--r--lib/parse/__tests__/parseReadme.js2
-rw-r--r--lib/parse/__tests__/parseSummary.js2
-rw-r--r--lib/parse/parseBook.js6
-rw-r--r--lib/parse/parseIgnore.js6
7 files changed, 50 insertions, 10 deletions
diff --git a/lib/parse/__tests__/parseBook.js b/lib/parse/__tests__/parseBook.js
index 37f7f02..441b7c0 100644
--- a/lib/parse/__tests__/parseBook.js
+++ b/lib/parse/__tests__/parseBook.js
@@ -1,5 +1,3 @@
-jest.autoMockOff();
-
var Book = require('../../models/book');
var createMockFS = require('../../fs/mock');
diff --git a/lib/parse/__tests__/parseGlossary.js b/lib/parse/__tests__/parseGlossary.js
index 14ff7cc..53805fe 100644
--- a/lib/parse/__tests__/parseGlossary.js
+++ b/lib/parse/__tests__/parseGlossary.js
@@ -1,5 +1,3 @@
-jest.autoMockOff();
-
var Book = require('../../models/book');
var createMockFS = require('../../fs/mock');
diff --git a/lib/parse/__tests__/parseIgnore.js b/lib/parse/__tests__/parseIgnore.js
new file mode 100644
index 0000000..bee4236
--- /dev/null
+++ b/lib/parse/__tests__/parseIgnore.js
@@ -0,0 +1,40 @@
+var Book = require('../../models/book');
+var createMockFS = require('../../fs/mock');
+
+describe('parseIgnore', function() {
+ var parseIgnore = require('../parseIgnore');
+ var fs = createMockFS({
+ '.ignore': 'test-1.js',
+ '.gitignore': 'test-2.js\ntest-3.js',
+ '.bookignore': '!test-3.js',
+ 'test-1.js': '1',
+ 'test-2.js': '2',
+ 'test-3.js': '3'
+ });
+
+ function getBook() {
+ var book = Book.createForFS(fs);
+ return parseIgnore(book);
+ }
+
+ pit('should load rules from .ignore', function() {
+ return getBook()
+ .then(function(book) {
+ expect(book.isFileIgnored('test-1.js')).toBeTruthy();
+ });
+ });
+
+ pit('should load rules from .gitignore', function() {
+ return getBook()
+ .then(function(book) {
+ expect(book.isFileIgnored('test-2.js')).toBeTruthy();
+ });
+ });
+
+ pit('should load rules from .bookignore', function() {
+ return getBook()
+ .then(function(book) {
+ expect(book.isFileIgnored('test-3.js')).toBeFalsy();
+ });
+ });
+});
diff --git a/lib/parse/__tests__/parseReadme.js b/lib/parse/__tests__/parseReadme.js
index 7d7c631..1b1567b 100644
--- a/lib/parse/__tests__/parseReadme.js
+++ b/lib/parse/__tests__/parseReadme.js
@@ -1,5 +1,3 @@
-jest.autoMockOff();
-
var Promise = require('../../utils/promise');
var Book = require('../../models/book');
var createMockFS = require('../../fs/mock');
diff --git a/lib/parse/__tests__/parseSummary.js b/lib/parse/__tests__/parseSummary.js
index 31e5d35..4b4650d 100644
--- a/lib/parse/__tests__/parseSummary.js
+++ b/lib/parse/__tests__/parseSummary.js
@@ -1,5 +1,3 @@
-jest.autoMockOff();
-
var Book = require('../../models/book');
var createMockFS = require('../../fs/mock');
diff --git a/lib/parse/parseBook.js b/lib/parse/parseBook.js
index 33f19f2..7dfa1eb 100644
--- a/lib/parse/parseBook.js
+++ b/lib/parse/parseBook.js
@@ -34,12 +34,16 @@ function parseMultilingualBook(book) {
return Promise.reduce(langList, function(currentBook, lang) {
var langID = lang.getID();
var child = Book.createFromParent(currentBook, langID);
+ var ignore = currentBook.getIgnore();
return Promise(child)
- .then(parseIgnore)
.then(parseConfig)
.then(parseBookContent)
.then(function(result) {
+ // Ignore content of this book when generating parent book
+ ignore.add(langID + '/**');
+ currentBook = currentBook.set('ignore', ignore);
+
return currentBook.addLanguageBook(langID, result);
});
}, book);
diff --git a/lib/parse/parseIgnore.js b/lib/parse/parseIgnore.js
index 3dd44f2..b23bfd8 100644
--- a/lib/parse/parseIgnore.js
+++ b/lib/parse/parseIgnore.js
@@ -8,6 +8,10 @@ var IGNORE_FILES = require('../constants/ignoreFiles');
@return {Book}
*/
function parseIgnore(book) {
+ if (book.isLanguageBook()) {
+ return Promise.reject(new Error('Ignore files could be parsed for language books'));
+ }
+
var fs = book.getFS();
var ignore = book.getIgnore();
@@ -35,7 +39,7 @@ function parseIgnore(book) {
return fs.readAsString(filename)
.then(function(content) {
ignore.addPattern(content.toString().split(/\r?\n/));
- }, function() {
+ }, function(err) {
return Promise();
});
})