diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-28 10:37:52 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-28 10:37:52 +0200 |
commit | 9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e (patch) | |
tree | a3f83548cb51d5ca9e601a2c5207a20367e0d82d /lib/parse | |
parent | 35d352bbebee0b5adebf3f877342ff28e57a7a03 (diff) | |
download | gitbook-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.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseGlossary.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseIgnore.js | 40 | ||||
-rw-r--r-- | lib/parse/__tests__/parseReadme.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseSummary.js | 2 | ||||
-rw-r--r-- | lib/parse/parseBook.js | 6 | ||||
-rw-r--r-- | lib/parse/parseIgnore.js | 6 |
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(); }); }) |