UNPKG

3.05 kBJavaScriptView Raw
1var assert = require ('assert');
2var path = require ('path');
3var scaffolding = require ('../lib/cli/scaffolding');
4var rm = require ('rimraf');
5var fs = require ('fs');
6
7describe ('cli scaffolding', function(){
8
9 require('./includes/startup');
10
11 var temp_folder = "test/tmp";
12 var simpleFolder = path.join(process.cwd(), "/test/fixtures/scaffolding/simplefolder");
13
14 //make sure temp folder is deleted even if tests fail (before and after)
15 function cleanup (cb){
16 rm(temp_folder, function(){
17 fs.mkdir(temp_folder, cb);
18 });
19 }
20
21 //make sure temp folder is deleted even if tests fail (before and after)
22 beforeEach(function(done){
23 cleanup(done);
24 });
25
26 afterEach(function(done){
27 cleanup(done);
28 });
29
30 describe ('scaffolding folder', function(){
31
32 it('copy all items within the template folder to the destination folder', function(done){
33 var destinationFolder = path.join(temp_folder,'simplefolder');
34 scaffolding.scaffold(simpleFolder, destinationFolder, function(err){
35 assert.ok(!err, err);
36 fs.readdir(destinationFolder, function(err, files) {
37 assert.equal(files.length, 2, 'all files were copied');
38 done();
39 });
40 });
41 });
42
43 it('applies ejs template transformations', function(done){
44 var destinationFolder = path.join(temp_folder,'simplefolder');
45 var options = {
46 engine: 'ejs',
47 data: {
48 name : 'testName'
49 }
50 };
51
52 scaffolding.scaffold(simpleFolder, destinationFolder, options, function(err){
53 assert.ifError(err);
54 var file = path.join(destinationFolder, 'file1.js');
55 fs.readFile(file, 'UTF-8', function read(err, data) {
56 assert.ifError(err);
57 assert.equal(data.indexOf('<h1>testName</h1>'), 0, 'expected content not found. current content: ' + data);
58 done();
59 });
60 });
61 });
62
63 it('creates subfolders automatically', function(done){
64 var destinationFolder = path.join(temp_folder, 'level1', 'level2', 'level3');
65 scaffolding.scaffold(simpleFolder, destinationFolder, function(err){
66 assert.ifError(err);
67 fs.readdir(destinationFolder, function(err, files) {
68 assert.equal(files.length, 2, 'all files were copied');
69 done();
70 });
71 });
72 });
73
74 it('can rename destination files', function(done){
75 var destinationFolder = path.join(temp_folder, 'level1', 'level2', 'level3');
76 var options = {
77 replace: {
78 'file1' : 'archivo1'
79 }
80 };
81 scaffolding.scaffold(simpleFolder, destinationFolder, options, function(err){
82 assert.ifError(err);
83 fs.readdir(destinationFolder, function(err, files) {
84 assert.equal(files.length, 2, 'all files were copied');
85 assert.equal(files[0], 'archivo1.js');
86 assert.equal(files[1], 'file2.js');
87 done();
88 });
89 });
90 });
91
92 });
93});
94