diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-28 11:35:30 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-28 11:35:30 +0200 |
commit | 78e00db018f1f3e69a612fe8a7cf8787bdef4fd5 (patch) | |
tree | 1c9e1a329818ca5fb357910d638f1d37f37fb66c | |
parent | e62bc31e6363084fb3e138a5fcfd799105d353b8 (diff) | |
download | gitbook-78e00db018f1f3e69a612fe8a7cf8787bdef4fd5.zip gitbook-78e00db018f1f3e69a612fe8a7cf8787bdef4fd5.tar.gz gitbook-78e00db018f1f3e69a612fe8a7cf8787bdef4fd5.tar.bz2 |
Add tests for SummaryModifier.editPartTitle
-rw-r--r-- | lib/models/__tests__/summary.js | 1 | ||||
-rw-r--r-- | lib/models/summary.js | 11 | ||||
-rw-r--r-- | lib/modifiers/summary/__tests__/editPartTitle.js | 44 | ||||
-rw-r--r-- | lib/parse/parseSummary.js | 7 |
4 files changed, 57 insertions, 6 deletions
diff --git a/lib/models/__tests__/summary.js b/lib/models/__tests__/summary.js index e7b496e..ad040cf 100644 --- a/lib/models/__tests__/summary.js +++ b/lib/models/__tests__/summary.js @@ -1,4 +1,3 @@ -jest.autoMockOff(); describe('Summary', function() { var File = require('../file'); diff --git a/lib/models/summary.js b/lib/models/summary.js index 444c191..b04630f 100644 --- a/lib/models/summary.js +++ b/lib/models/summary.js @@ -20,6 +20,17 @@ Summary.prototype.getParts = function() { }; /** + Return a part by its index + + @param {Number} + @return {Part} +*/ +Summary.prototype.getPart = function(i) { + var parts = this.getParts(); + return parts.get(i); +}; + +/** Return an article using an iterator to find it. if "partIter" is set, it can also return a Part. diff --git a/lib/modifiers/summary/__tests__/editPartTitle.js b/lib/modifiers/summary/__tests__/editPartTitle.js new file mode 100644 index 0000000..d1b916b --- /dev/null +++ b/lib/modifiers/summary/__tests__/editPartTitle.js @@ -0,0 +1,44 @@ +var Summary = require('../../../models/summary'); +var File = require('../../../models/file'); + +describe('editPartTitle', function() { + var editPartTitle = require('../editPartTitle'); + var summary = Summary.createFromParts(File(), [ + { + articles: [ + { + title: 'My First Article', + path: 'README.md' + }, + { + title: 'My Second Article', + path: 'article.md' + } + ] + }, + { + title: 'Test' + } + ]); + + it('should correctly set title of first part', function() { + var newSummary = editPartTitle(summary, 0, 'Hello World'); + var part = newSummary.getPart(0); + + expect(part.getTitle()).toBe('Hello World'); + }); + + it('should correctly set title of second part', function() { + var newSummary = editPartTitle(summary, 1, 'Hello'); + var part = newSummary.getPart(1); + + expect(part.getTitle()).toBe('Hello'); + }); + + it('should not fail if part doesn\'t exist', function() { + var newSummary = editPartTitle(summary, 3, 'Hello'); + expect(newSummary.getParts().size).toBe(2); + }); +}); + + diff --git a/lib/parse/parseSummary.js b/lib/parse/parseSummary.js index 74df563..ebe47d2 100644 --- a/lib/parse/parseSummary.js +++ b/lib/parse/parseSummary.js @@ -16,10 +16,6 @@ function parseSummary(book) { var logger = book.getLogger(); var readmeFile = readme.getFile(); - if (!readmeFile.exists()) { - return Promise.reject(new Error('Summary parsing should be done after readme parsing')); - } - return parseStructureFile(book, 'summary') .spread(function(file, result) { if (!file) { @@ -32,7 +28,8 @@ function parseSummary(book) { // Insert readme as first entry var firstArticle = summary.getFirstArticle(); - if (!firstArticle || firstArticle.getRef() !== readmeFile.getPath()) { + if (readmeFile.exists() && + (!firstArticle || firstArticle.getRef() !== readmeFile.getPath())) { summary = SummaryModifier.unshiftArticle(summary, { title: 'Introduction', ref: readmeFile.getPath() |