UNPKG

rock

Version:

Generate and scaffold file structures or project skeletons from templates.

74 lines (60 loc) 2.16 kB
/* eslint-env mocha */ var P = require('autoresolve') var suppose = require('suppose') var path = require('path') var fs = require('fs') var testutil = require('testutil') require('terst') var ROCK_CMD = P('bin/rock') var TEST_PATH = null var ROCK_CONF = P('test/resources/rock.conf.json') var testRockPath = P('test/resources/rocks/node-lib') function AFE (file1, file2) { T(fs.readFileSync(file1).toString() === fs.readFileSync(file2).toString()) } describe('rock-bin', function () { beforeEach(function () { TEST_PATH = testutil.createTestDir('rock') }) it('should generate a basic project', function (done) { var testPath = path.join(TEST_PATH, 'exec_from_cmd') var appName = 'myapp' var projectName = 'cool_module' var rockGitDir = path.join(testRockPath, '.git') var cwd = process.cwd() // Make test directory: fs.mkdir(testPath, executeRock) function executeRock () { process.chdir(cwd) process.chdir(testPath) suppose(ROCK_CMD, [appName, '-c', ROCK_CONF, '-r', P('test/resources/rocks/node-lib')]) // .debug(process.stdout) .when('author: ').respond('JP Richardson\n') .when('email: ').respond('jprichardson@gmail.com\n') .when('project-description: ').respond('A cool test for a sweet library.\n') .when('project-name: ').respond(projectName + '\n') .on('error', done) .end(verifyResults) } function verifyResults (code) { T(code === 0) var outDir = path.join(path.join(testPath, appName)) var expectDir = P('test/resources/expect/' + appName) function AF (file) { var file1 = path.join(outDir, file) var file2 = path.join(expectDir, file) AFE(file1, file2) } if (fs.existsSync(rockGitDir)) fs.removeSync(rockGitDir) T(fs.existsSync(outDir)) AF('LICENSE') AF('README.md') AF('lib/' + projectName + '.js') AF('test/' + projectName + '.test.js') AF('ignore_this/READTHIS.md') T(!fs.existsSync(path.join(outDir, '.git'))) T(!fs.existsSync(path.join(outDir, '.rock'))) done() } }) })