UNPKG

srcgen

Version:

Generate any source for any language and any frameworks from templates with Node JS

111 lines 6.05 kB
var should = require('chai').should(), generator = require('../index'), path = require('path'), fs = require('fs'); describe(`srcgen.builder.filename: transform filename "fixtures/%object.field1%"`, function () { it(`should be "fixtures/file1.txt"`, function () { var result = generator.builder.filename( 'fixtures/%object.field1%', { object: { field1: "file1.txt" } } ); result.should.equal('fixtures/file1.txt'); }); }); describe(`srcgen.builder.string: transform string "12_<%=object.value%>_34"`, function () { it(`should be "12_56_34"`, function () { var result = generator.builder.string( '12_<%=object.value%>_34', { object: { value: '56' } } ); result.should.equal('12_56_34'); }); }); describe(`srcgen.builder.template: transform content in template file "fixtures/template-test.html"`, function () { it(`should be "<html><title>Page Title</title></html>"`, function () { var result = generator.builder.template( path.resolve(__dirname, './fixtures/template-test.html'), { page: { title: 'Page Title' } } ); result.should.equal('<html><title>Page Title</title></html>'); }); }); describe(`srcgen.builder.script: run script "fixtures/src/template-script#.js" for generate file content by template file "fixtures/dest/template-model!.js"`, function () { it(`should be "var model={key1:"val1",key2:"val2",key3:"val3",};"`, function () { generator.utils.remove(path.resolve(__dirname, './fixtures/dest/model.js')); generator.builder.script( path.resolve(__dirname, './fixtures/src/template-script#.js'), path.resolve(__dirname, './fixtures/src'), path.resolve(__dirname, './fixtures/dest'), { model: { key1: 'val1', key2: 'val2' } } ); var result = generator.utils.load(path.resolve(__dirname, './fixtures/dest/model.js')); result.should.equal('var model={key1:"val1",key2:"val2",key3:"val3",};'); }); }); describe(`srcgen.builder.folder.copySrcToDest: copy and transform files from src folder "fixtures/src" to dest folder "fixtures/dest"`, function () { it(`file "fixtures/dest/Post.py" should be exists`, function () { generator.utils.remove(path.resolve(__dirname, './fixtures/dest/Post.py')); generator.builder.folder.copySrcToDest( path.resolve(__dirname, './fixtures/src'), path.resolve(__dirname, './fixtures/dest'), { ModelName: 'Post' } ); var result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/Post.py')); result.should.equal(true); }); it(`file "fixtures/dest/Post.py" should be containt "Post"`, function () { var result = generator.utils.load(path.resolve(__dirname, './fixtures/dest/Post.py')); (result.indexOf('Post') !== -1).should.equal(true); }); }); describe(`srcgen.builder.folder.runScriptsInSrc: run all script in folder "fixtures/src"`, function () { it(`should be "var model={key1:"val1",key2:"val2",key3:"val3",};"`, function () { generator.utils.remove(path.resolve(__dirname, './fixtures/dest/model.js')); generator.builder.folder.runScriptsInSrc( path.resolve(__dirname, './fixtures/src'), path.resolve(__dirname, './fixtures/dest'), { model: { key1: 'val1', key2: 'val2' } } ); var result = generator.utils.load(path.resolve(__dirname, './fixtures/dest/model.js')); result.should.equal('var model={key1:"val1",key2:"val2",key3:"val3",};'); }); }); describe(`srcgen.builder.folder.all: run all script and transform templates in folder "fixtures/src"`, function () { it(`files should be not exists "fixtures/dest/model.js" and "fixtures/dest/Post.py"`, function () { generator.utils.remove(path.resolve(__dirname, './fixtures/dest/model.js')); generator.utils.remove(path.resolve(__dirname, './fixtures/dest/Post.py')); var result; result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/model.js')); result.should.equal(false); result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/Post.py')); result.should.equal(false); }); it(`files should be exists "fixtures/dest/model.js" and "fixtures/dest/Post.py"`, function () { generator.builder.setReplacers([{ from: 'replace me', to: 'replaced text' }]); generator.builder.folder.all( path.resolve(__dirname, './fixtures/src'), path.resolve(__dirname, './fixtures/dest'), { ModelName: 'Post', model: { key1: 'val1', key2: 'val2' } } ); var result; result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/model.js')); result.should.equal(true); result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/Post.py')); result.should.equal(true); }); it(`files should be exists "fixtures/dest/model.js" and "fixtures/dest/Post.py" with words to replace `, function () { generator.builder.setReplacers([{ from: 'replace me', to: 'replaced text' }]); generator.builder.folder.all( path.resolve(__dirname, './fixtures/src'), path.resolve(__dirname, './fixtures/dest'), { ModelName: 'Post', model: { key1: 'val1', key2: 'val2' } } ); var result; result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/model.js')); result.should.equal(true); result = generator.utils.exists(path.resolve(__dirname, './fixtures/dest/Post.py')); result.should.equal(true); result = generator.utils.load(path.resolve(__dirname, './fixtures/dest/Post.py')); (result.indexOf('replaced text') != -1).should.equal(true); }); });