Source: apc-abstract/task/worker/generate_unit_test_files.js

/**
 * Generate test files unless exist.
 * @function task.worker.generateTestFiles
 * @param {object} config - Task configuration.
 * @param {string} config.srcDir - Source files directory.
 * @param {string} config.destDir - Destination test directory.
 * @param {function} callback - Callback when done.
 * @author Taka Okunishi
 *
 */
var path = require('path'),
    lib = require('../../lib'),
    object = lib.object,
    fallbackCopy = object.fallbackCopy,
    generateTestFiles = require('./generate_test_files');

exports = module.exports = function (config, callback) {
    var destDir = path.resolve(config.destDir);
    fallbackCopy({
        pattern: '*.js',
        ignore: '**/+(index|_prototype).js',
        data: {
            testResourcePath: path.relative(destDir, path.resolve('test/test_resource')),
            mockInjectorPath: path.relative(destDir, path.resolve('test/mock_injector'))
        },
        tmpl: exports._unitTestTmplPath
    }, config);
    generateTestFiles(config, callback);
};
exports._unitTestTmplPath = path.resolve(__dirname, '../../tmpl/js/unit_test.js.hbs');