UNPKG

nodejs-tpkg-builder

Version:

a build tool for node apps using tpkg (http://tpkg.github.io/)

52 lines (39 loc) 2.03 kB
'use strict'; var test = require('tape'); var path = require('path'); var fs = require('fs'); var tpkgBuilder = require('../lib/tpkg-builder'); var projectDir = path.join(__dirname, 'fixtures/example_app'); var templatesDir = path.join(__dirname, '../lib/tpkg'); var tpkgConfig = require(path.join(projectDir, 'tpkg.json')); var buildSubDir = path.join(projectDir, tpkgConfig.build.buildOutputDir, 'build'); test('tpkg build output', function (t) { t.plan(6); tpkgBuilder.build(projectDir, templatesDir, function (err) { if (err) { t.fail('tpkgBuilder.build() failed'); } else { t.pass('tpkg folder structure built'); var expectedBuildFiles = ['postinstall', 'postremove', 'root', 'tpkg.yml']; var expectedProjectFiles = ['README.md', 'app', 'etc', 'package.json']; var expectedCronFiles = ['example-js-logrotate.conf', 'example-js.crontab']; var expectedInitFiles = ['example-js-init.sh']; var expectedSysconfigFiles = ['example-js-config.sh']; var buildFiles = fs.readdirSync(buildSubDir).sort(); t.deepEqual(buildFiles, expectedBuildFiles, 'build files match'); var projectPath = path.join(buildSubDir, 'root/home/t/example-js'); var projectFiles = fs.readdirSync(projectPath).sort(); t.deepEqual(projectFiles, expectedProjectFiles, 'project files match'); var cronPath = path.join(buildSubDir, 'root/home/t/example-js/etc/cron.d'); var cronFiles = fs.readdirSync(cronPath).sort(); t.deepEqual(cronFiles, expectedCronFiles, 'cron files match'); var initPath = path.join(buildSubDir, 'root/home/t/example-js/etc/init.d'); var initFiles = fs.readdirSync(initPath).sort(); t.deepEqual(initFiles, expectedInitFiles, 'init.d files match'); var sysconfigPath = path.join(buildSubDir, 'root/home/t/example-js/etc/sysconfig'); var sysconfigFiles = fs.readdirSync(sysconfigPath).sort(); t.deepEqual(sysconfigFiles, expectedSysconfigFiles, 'sysconfig files match'); } }); });