UNPKG

2.49 kBJavaScriptView Raw
1
2var assert = require('assert');
3var equal = require('assert-dir-equal');
4var Metalsmith = require('metalsmith');
5var layouts = require('..');
6
7describe('metalsmith-layouts', function(){
8 it('should render a basic template', function(done){
9 Metalsmith('test/fixtures/basic')
10 .use(layouts({ engine: 'swig' }))
11 .build(function(err){
12 if (err) return done(err);
13 equal('test/fixtures/basic/expected', 'test/fixtures/basic/build');
14 done();
15 });
16 });
17
18 it('should accept an engine string', function(done){
19 Metalsmith('test/fixtures/basic')
20 .use(layouts('swig'))
21 .build(function(err){
22 if (err) return done(err);
23 equal('test/fixtures/basic/expected', 'test/fixtures/basic/build');
24 done();
25 });
26 });
27
28 it('should accept a pattern to match', function(done){
29 Metalsmith('test/fixtures/pattern')
30 .use(layouts({ engine: 'swig', pattern: '*.md' }))
31 .build(function(err){
32 if (err) return done(err);
33 equal('test/fixtures/pattern/expected', 'test/fixtures/pattern/build');
34 done();
35 });
36 });
37
38 it('should accept a default template', function(done){
39 Metalsmith('test/fixtures/default')
40 .use(layouts({ engine: 'swig', pattern: '*.md', default: 'default.html' }))
41 .build(function(err){
42 if (err) return done(err);
43 equal('test/fixtures/pattern/expected', 'test/fixtures/pattern/build');
44 done();
45 });
46 });
47
48 it('should accept a different layouts directory', function(done){
49 Metalsmith('test/fixtures/directory')
50 .use(layouts({ engine: 'swig', directory: 'templates' }))
51 .build(function(err){
52 if (err) return done(err);
53 equal('test/fixtures/directory/expected', 'test/fixtures/directory/build');
54 done();
55 });
56 });
57
58 it('should mix in global metadata', function(done){
59 Metalsmith('test/fixtures/metadata')
60 .metadata({ title: 'Global Title' })
61 .use(layouts({ engine: 'swig' }))
62 .build(function(err){
63 if (err) return done(err);
64 equal('test/fixtures/metadata/expected', 'test/fixtures/metadata/build');
65 done();
66 });
67 });
68
69 it('should preserve binary files', function(done){
70 Metalsmith('test/fixtures/binary')
71 .use(layouts({ engine: 'swig' }))
72 .build(function(err){
73 if (err) return done(err);
74 equal('test/fixtures/binary/expected', 'test/fixtures/binary/build');
75 done();
76 });
77 });
78});
\No newline at end of file