1 |
|
2 | var assert = require('assert');
|
3 | var equal = require('assert-dir-equal');
|
4 | var Metalsmith = require('metalsmith');
|
5 | var layouts = require('..');
|
6 |
|
7 | describe('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 |