apeman-tmpl-contrib-official
Version:
Template for official apeman modules
183 lines (167 loc) • 4.35 kB
JavaScript
#!/usr/bin/env node
/**
* Test for index.js
* Runs with nodeunit.
*/
"use strict";
var buds = require('./index'),
path = require('path'),
mkdirp = require('mkdirp');
var tmpDir = path.resolve(__dirname, 'tmp');
var basedir;
exports.setUp = function (done) {
mkdirp.sync(tmpDir);
basedir = process.cwd();
done();
};
exports.tearDown = function (done) {
process.chdir(basedir);
done();
};
exports['Eval properties.'] = function (test) {
Object.keys(buds).forEach(function (key) {
test.ok(buds[key]);
});
test.done();
};
exports['Render app contrib.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-app');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.appContrib.render({
pkg: {
name: 'Foo'
},
usage: __filename,
options: {
bar: 'This is bar'
},
signature: require('./docs/mockups/mock-app-signature.json'),
see: {
quz: 'http://example.com'
}
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Render task contrib.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-task');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.taskContrib.render({
pkg: {
name: 'apeman-task-contrib-foo',
description: 'This is foo.'
},
signature: require('./docs/mockups/mock-task-signature.json'),
exampleTask: 'my-example-task',
see: {
quz: 'http://example.com'
}
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Render tmpl contrib.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-tmpl');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.tmplContrib.render({
pkg: {
name: 'Foo'
},
usage: __filename
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Render ui contrib.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-ui');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.uiContrib.render({
pkg: {
name: 'Foo'
},
usage: __filename,
dependencies: {
"angular": "1.4.3"
},
docs: {
foo: 'http://bar'
}
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Render command.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-command');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.command.render({
command: {
name: 'yo',
params: {foo: {}},
description: 'baz',
options: {
'quz': {
"desc": "This is quz.",
"default": "baz"
}
}
},
pkg: {
name: 'bar-baz'
},
exampleApemanfile: require.resolve('./docs/mockups/mock-Apemanfile.js'),
exampleUsage: require.resolve('./docs/mockups/mock-command-example.js')
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Render commons.'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-commons');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.commons.render({
module: {
name: 'ja',
params: {foo: {}},
description: 'baz',
options: {
'quz': {
"desc": "This is quz."
}
}
},
pkg: {
name: 'bar-baz'
},
usages: [
{
"title": "foo",
"description": "This is how to use foo",
example: require.resolve('./docs/mockups/mock-module-example.js')
}
]
}, function (err) {
test.ifError(err);
test.done();
});
};
exports['Demo'] = function (test) {
var dirname = path.resolve(tmpDir, 'testing-demo');
mkdirp.sync(dirname);
process.chdir(dirname);
buds.demo.render({
url: 'http://example.com/foo.git'
}, function (err) {
test.ifError(err);
test.done();
});
};