From 8bb455b576b2dbae4419226461cf92c7501104d3 Mon Sep 17 00:00:00 2001 From: Klemek Date: Mon, 1 Jul 2019 23:15:13 +0200 Subject: [PATCH] Fixed draft rendering bug --- package.json | 2 +- src/app.js | 5 +++-- src/file_walker.js | 4 ++-- test/app.test.js | 18 +++++++++++++++--- test/file_walker.test.js | 8 ++++---- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index ee82655..b05cb18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gitblog.md", - "version": "1.2.4", + "version": "1.2.5", "description": "A static blog using Markdown pulled from your git repository.", "main": "src/server.js", "dependencies": { diff --git a/src/app.js b/src/app.js index e9f0b5b..5496fe2 100644 --- a/src/app.js +++ b/src/app.js @@ -69,8 +69,9 @@ module.exports = (config) => { Object.keys(articles).forEach((key) => delete articles[key]); Object.keys(dict).forEach((key) => articles[key] = dict[key]); const nb = Object.keys(articles).length; + const dnb = Object.values(articles).filter(a => a.draft).length; if (nb > 0) - console.log(cons.ok, `loaded ${nb} article${nb > 1 ? 's' : ''}`); + console.log(cons.ok, `loaded ${nb} article${nb > 1 ? 's' : ''} (${dnb} drafted)`); else console.log(cons.warn, `no articles loaded, check your configuration`); @@ -220,7 +221,7 @@ module.exports = (config) => { if (!article) showError(req, res, 404); else { - renderer.render(path.join(article.realPath, config['article']['index']), (err, html) => { + renderer.render(article.realPath, (err, html) => { if (err) { console.log(cons.error, `failed to render article ${req.path} : ${err}`); return showError(req, res, 500); diff --git a/src/file_walker.js b/src/file_walker.js index 83ab260..4cb0d73 100644 --- a/src/file_walker.js +++ b/src/file_walker.js @@ -82,7 +82,7 @@ module.exports = (config) => { const article = { path: joinUrl(p[0], p[1], p[2]), draft: p[3] === config['article']['draft'], - realPath: path.join(config['data_dir'], p[0], p[1], p[2]), + realPath: path.join(config['data_dir'], p[0], p[1], p[2], p[3]), year: parseInt(p[0]), month: parseInt(p[1]), day: parseInt(p[2]) @@ -90,7 +90,7 @@ module.exports = (config) => { article.date = new Date(article.year, article.month, article.day); article.date.setUTCHours(0); remaining++; - readIndexFile(path.join(article.realPath, p[3]), config['article']['thumbnail_tag'], (err, info) => { + readIndexFile(article.realPath, config['article']['thumbnail_tag'], (err, info) => { if (err) return cb(err); article.title = info.title || config['article']['default_title']; diff --git a/test/app.test.js b/test/app.test.js index 1d8c6e2..38e6002 100644 --- a/test/app.test.js +++ b/test/app.test.js @@ -322,12 +322,11 @@ describe('Test articles rendering', () => { }); }); - test('500 no index', (done, fail) => { + test('500 fail to render', (done, fail) => { utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]); fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'index.md'), '# Hello'); - fs.writeFileSync(path.join(dataDir, testTemplate), '<%- article.content %><%- `reload` %>'); + fs.writeFileSync(path.join(dataDir, testTemplate), '<%- articl.content %><%- `reload` %>'); app.reload(() => { - config['article']['index'] = 'invalid.md'; request(app).get('/2019/05/05/hello/').then((response) => { expect(response.statusCode).toBe(500); done(); @@ -359,6 +358,19 @@ describe('Test articles rendering', () => { }, fail); }); + test('200 rendered draft', (done, fail) => { + utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]); + fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'draft.md'), '# Hello'); + fs.writeFileSync(path.join(dataDir, testTemplate), '<%- article.content %><%- `reload` %>'); + app.reload(() => { + request(app).get('/2019/05/05/hello/').then((response) => { + expect(response.statusCode).toBe(200); + expect(response.text).toBe('

Hello

reload'); + done(); + }); + }, fail); + }); + test('200 other url', (done, fail) => { utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]); utils.createEmptyFiles([ diff --git a/test/file_walker.test.js b/test/file_walker.test.js index 519ad9e..6df5689 100644 --- a/test/file_walker.test.js +++ b/test/file_walker.test.js @@ -236,7 +236,7 @@ describe('Test article fetching', () => { expect(Object.keys(dict).length).toBe(1); expect(dict[joinUrl('2019', '05', '05')]).toEqual({ path: joinUrl('2019', '05', '05'), - realPath: dir, + realPath: file, year: 2019, month: 5, draft: false, @@ -267,7 +267,7 @@ describe('Test article fetching', () => { expect(Object.keys(dict).length).toBe(1); expect(dict[joinUrl('2019', '05', '05')]).toEqual({ path: joinUrl('2019', '05', '05'), - realPath: dir, + realPath: file, year: 2019, month: 5, day: 5, @@ -298,7 +298,7 @@ describe('Test article fetching', () => { expect(Object.keys(dict).length).toBe(1); expect(dict[joinUrl('2019', '05', '05')]).toEqual({ path: joinUrl('2019', '05', '05'), - realPath: dir, + realPath: file, year: 2019, month: 5, day: 5, @@ -326,7 +326,7 @@ describe('Test article fetching', () => { expect(Object.keys(dict).length).toBe(1); expect(dict[joinUrl('2019', '05', '05')]).toEqual({ path: joinUrl('2019', '05', '05'), - realPath: dir, + realPath: file, year: 2019, month: 5, draft: false,