2014-02-04 21:47:35 -08:00
|
|
|
var assert = require('assert');
|
|
|
|
var equal = require('assert-dir-equal');
|
|
|
|
var Metalsmith = require('metalsmith');
|
2015-07-16 20:56:01 +02:00
|
|
|
var layouts = require('..');
|
2014-02-04 21:47:35 -08:00
|
|
|
|
2015-07-16 20:56:01 +02:00
|
|
|
describe('metalsmith-layouts', function(){
|
2014-02-04 21:47:35 -08:00
|
|
|
it('should render a basic template', function(done){
|
|
|
|
Metalsmith('test/fixtures/basic')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig' }))
|
2014-02-04 21:47:35 -08:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/basic/expected', 'test/fixtures/basic/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2014-03-05 21:11:21 -08:00
|
|
|
it('should accept an engine string', function(done){
|
|
|
|
Metalsmith('test/fixtures/basic')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts('swig'))
|
2014-03-05 21:11:21 -08:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/basic/expected', 'test/fixtures/basic/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2014-03-08 19:56:18 -08:00
|
|
|
it('should accept a pattern to match', function(done){
|
|
|
|
Metalsmith('test/fixtures/pattern')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig', pattern: '*.md' }))
|
2014-03-08 19:56:18 -08:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/pattern/expected', 'test/fixtures/pattern/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2014-04-02 12:28:52 -07:00
|
|
|
it('should accept a default template', function(done){
|
|
|
|
Metalsmith('test/fixtures/default')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig', pattern: '*.md', default: 'default.html' }))
|
2014-04-02 12:28:52 -07:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/pattern/expected', 'test/fixtures/pattern/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2015-07-16 20:56:01 +02:00
|
|
|
it('should accept a different layouts directory', function(done){
|
2014-02-07 19:43:04 -08:00
|
|
|
Metalsmith('test/fixtures/directory')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig', directory: 'templates' }))
|
2014-02-04 21:47:35 -08:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
2014-02-07 19:43:04 -08:00
|
|
|
equal('test/fixtures/directory/expected', 'test/fixtures/directory/build');
|
2014-02-04 21:47:35 -08:00
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
2014-02-05 11:44:18 -08:00
|
|
|
|
|
|
|
it('should mix in global metadata', function(done){
|
|
|
|
Metalsmith('test/fixtures/metadata')
|
|
|
|
.metadata({ title: 'Global Title' })
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig' }))
|
2014-02-05 11:44:18 -08:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/metadata/expected', 'test/fixtures/metadata/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
2014-07-09 11:15:03 -07:00
|
|
|
|
|
|
|
it('should preserve binary files', function(done){
|
|
|
|
Metalsmith('test/fixtures/binary')
|
2015-07-16 20:56:01 +02:00
|
|
|
.use(layouts({ engine: 'swig' }))
|
2014-07-09 11:15:03 -07:00
|
|
|
.build(function(err){
|
|
|
|
if (err) return done(err);
|
|
|
|
equal('test/fixtures/binary/expected', 'test/fixtures/binary/build');
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
2015-07-25 11:22:36 +02:00
|
|
|
});
|