UNPKG

blogs

Version:
100 lines (86 loc) 2.32 kB
var assert = require('assert'); var path = require('path'); var Blog = require('../lib/-blog'); var Post = require('../lib/-post'); describe('Blog', function () { var blog; beforeEach(function () { blog = new Blog(path.join(__dirname, '../sample')); }); it('should have dir', function () { assert.equal(blog.dir, path.join(__dirname, '../sample')); }); it('should have basic info', function () { assert.deepEqual({ title: blog.title, subTitle: blog.subTitle, author: blog.author }, { title: 'Sheldon\'s Diary', subTitle: 'Deshi, Deshi', author: 'Sheldon' }); }); it('should get paths relative to its root direcotry', function () { assert.equal(blog.path('assets'), path.join(__dirname, '../sample/assets')); }); it('should get posts', function (done) { blog.posts((error, posts) => { assert.ok(!error && 0 < posts.length && posts.every((post) => { return post instanceof Post; })); done(); }); }); it('should get layouts', function (done) { blog.layouts(function (error, layouts) { assert.deepEqual(!error && layouts, [ 'error', 'index', 'post' ].reduce((layout, name) => { layout[name] = path.join(__dirname, '../sample/layout/' + name + '.html'); return layout; }, {})); done(); }); }); it('should get plugins', function (done) { blog.plugins('filter', (error, filters) => { var filterNames = [ 'blockIndent', 'sample' ]; assert.deepEqual(!error && filterNames.reduce((results, name) => { results[name] = typeof filters[name]; return results; }, {}), filterNames.reduce((results, name) => { results[name] = 'function'; return results; }, {})); done(); }); }); it('should render a string', function (done) { blog.render('{{ weapon }} is an easy set to get the hang of!', null, { weapon: 'L-3 Nozzlenose D' }, (error, result) => { assert.equal(!error && result, 'L-3 Nozzlenose D is an easy set to get the hang of!'); done(); }); }); it('should compile a blog', function (done) { blog.compile((error, blog) => { assert.ok(!error && blog.posts.every((post) => { return post.rendered; })); done(); }); }); it('should deploy files', function (done) { blog.deploy((error) => { assert.ok(!error); done(); }); }); });