gpii-universal
Version:
Cross platform, core components of the GPII personalization infrastructure.
65 lines (55 loc) • 2.25 kB
JavaScript
/*
When running our tests with an eye towards preparing code coverage reports, we instrument our unique code,
but do not instrument libraries (like jQuery) or non-code content.
This script copies the remaining content in uninstrumented form to the target directory, so that all required
content is available when running the tests.
*/
/* eslint-env node */
;
var fluid = require("infusion");
var gpii = fluid.registerNamespace("gpii");
var copy = require("recursive-copy");
var path = require("path");
fluid.registerNamespace("gpii.test.testem.copier");
gpii.test.testem.copier.copyDirs = function (srcRoot, targetRoot, dirsToCopy) {
var promises = [];
var resolvedSrcRoot = fluid.module.resolvePath(srcRoot);
var resolvedTargetRoot = fluid.module.resolvePath(targetRoot);
fluid.each(dirsToCopy, function (dirToCopy) {
promises.push(function () {
var wrappedPromise = fluid.promise();
var src = path.resolve(resolvedSrcRoot, dirToCopy);
var dest = path.resolve(resolvedTargetRoot, dirToCopy);
var rawPromise = copy(src, dest);
/* eslint dot-notation: "off" */
rawPromise.then(wrappedPromise.resolve).catch(wrappedPromise.reject);
});
});
var sequence = fluid.promise.sequence(promises);
sequence.then(
function () {
fluid.log("Copied non-instrumented code succesfully...");
},
function (error) {
fluid.log("Error copying non-instrumented code:\n", error);
}
);
return sequence;
};
fluid.defaults("gpii.test.testem.copier", {
gradeNames: ["fluid.component"],
srcRoot: "%gpii-universal/gpii",
targetRoot: "%gpii-universal/instrumented/universal/gpii",
dirsToCopy: [
"node_modules/gpii-oauth2/gpii-oauth2-authz-server/public/lib",
"node_modules/gpii-oauth2/gpii-oauth2-authz-server/webTests/lib",
"node_modules/testing"
],
listeners: {
"onCreate.copyDirs": {
funcName: "gpii.test.testem.copier.copyDirs",
args: ["{that}.options.srcRoot", "{that}.options.targetRoot", "{that}.options.dirsToCopy"]
}
}
});
gpii.test.testem.copier();