npmci/test/test.js

84 lines
10 KiB
JavaScript

"use strict";
require("typings-test");
require("should");
var path = require("path");
var beautylog = require("beautylog");
//set up environment
process.env.CI_BUILD_REPO = "https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git";
process.env.NPMTS_TEST = "true";
process.cwd = function () {
return path.join(__dirname, "assets/");
};
//require NPMCI files
var NpmciBuildDocker = require("../dist/npmci.build.docker");
var NpmciPublish = require("../dist/npmci.publish");
var NpmciTest = require("../dist/npmci.test");
var dockerfile1;
var dockerfile2;
var sortableArray;
describe("NPMCI", function () {
describe("build.docker", function () {
it("should return valid Dockerfiles", function () {
dockerfile1 = new NpmciBuildDocker.Dockerfile({ filePath: "./Dockerfile", read: true });
dockerfile2 = new NpmciBuildDocker.Dockerfile({ filePath: "./Dockerfile_sometag1", read: true });
dockerfile1.version.should.equal("latest");
dockerfile2.version.should.equal("sometag1");
});
it("should read a directory of Dockerfiles", function (done) {
NpmciBuildDocker.readDockerfiles()
.then(function (readDockerfilesArrayArg) {
readDockerfilesArrayArg[1].version.should.equal("sometag1");
sortableArray = readDockerfilesArrayArg;
done();
});
});
it("should sort an array of Dockerfiles", function (done) {
NpmciBuildDocker.sortDockerfiles(sortableArray)
.then(function (sortedArrayArg) {
beautylog.success("final result");
console.log(sortedArrayArg);
done();
});
});
it("should correctly chain Dockerfile handling", function (done) {
NpmciBuildDocker.build()
.then(function () {
done();
});
});
});
describe(".publish.docker", function () {
it("should publish all built Dockerfiles", function (done) {
NpmciPublish.publish("docker")
.then(function () {
done();
});
;
});
});
describe(".test.npm", function () {
it("should source nvm using bash and install a specific node version, then test it", function (done) {
NpmciTest.test("legacy")
.then(function () {
return NpmciTest.test("lts");
})
.then(function () {
return NpmciTest.test("stable");
})
.then(function () {
done();
});
});
});
describe("test.docker", function () {
it("should test dockerfiles", function (done) {
NpmciTest.test("docker")
.then(function () {
done();
});
});
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,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O2dCQUNGLElBQUksRUFBRSxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxXQUFXLEVBQUM7UUFDakIsRUFBRSxDQUFDLGdGQUFnRixFQUFDLFVBQVMsSUFBSTtZQUM3RixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDbkIsSUFBSSxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQztnQkFDRixJQUFJLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsRUFBRSxDQUFDLHlCQUF5QixFQUFDLFVBQVMsSUFBSTtZQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDbkIsSUFBSSxDQUFDO2dCQUNGLElBQUksRUFBRSxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUEiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtdGVzdFwiO1xuaW1wb3J0IFwic2hvdWxkXCI7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuaW1wb3J0ICogYXMgYmVhdXR5bG9nIGZyb20gXCJiZWF1dHlsb2dcIlxuLy9zZXQgdXAgZW52aXJvbm1lbnRcbnByb2Nlc3MuZW52LkNJX0JVSUxEX1JFUE8gPSBcImh0dHBzOi8veXl5eXl5Onh4eHh4eHh4QGdpdGxhYi5jb20vbXlncm91cC9teXJlcG8uZ2l0XCI7XG5wcm9jZXNzLmVudi5OUE1UU19URVNUID0gXCJ0cnVlXCI7XG5wcm9jZXNzLmN3ZCA9ICgpID0+IHtcbiAgICByZXR1cm4gcGF0aC5qb2luKF9fZGlybmFtZSxcImFzc2V0cy9cIik7XG59O1xuXG4vL3JlcXVpcmUgTlBNQ0kgZmlsZXNcbmltcG9ydCBOcG1jaUJ1aWxkRG9ja2VyID0gcmVxdWlyZShcIi4uL2Rpc3QvbnBtY2kuYnVpbGQuZG9ja2VyXCIpO1xuaW1wb3J0IE5wbWNpUHVibGlzaCA9IHJlcXVpcmUoXCIuLi9kaXN0L25wbWNpLnB1Ymxpc2hcIik7XG5pbXBvcnQgTnBtY2lUZXN0ID0gcmVxdWlyZShcIi4uL2Rpc3QvbnBtY2kudGVzdFwiKTtcblxuXG5sZXQgZG9ja2VyZmlsZTE6TnBtY2lCdWlsZERvY2tlci5Eb2NrZXJmaWxlO1xubGV0IGRvY2tlcmZpbGUyOk5wbWNpQnVpbGREb2NrZXIuRG9ja2VyZmlsZTtcbmxldCBzb3J0YWJsZUFycmF5Ok5wbWNpQnVpbGREb2NrZXIuRG9ja2VyZmlsZVtdO1xuXG5kZXNjcmliZShcIk5QTUNJXCIsZnVuY3Rpb24oKXtcbiAgICBkZXNjcmliZShcImJ1aWxkLmRvY2tlclwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiB2YWxpZCBEb2NrZXJmaWxlc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBkb2NrZXJmaWxlMSA9IG5ldyBOcG1jaUJ1aWxkRG9ja2VyLkRvY2tlcmZpbGUoe2ZpbGVQYXRoOlwiLi9Eb2NrZXJmaWxlXCIscmVhZDp0cnVlfSk7XG4gICAgICAgICAgICBkb2NrZXJmaWxlMiA9IG5ldyBOcG1jaUJ1aWxkRG9ja2VyLkRvY2tlcmZpbGUoe2ZpbGVQYXRoOlwiLi9Eb2NrZXJmaWxlX3NvbWV0YWcxXCIscmVhZDp0cnVlfSk7XG4gICAgICAgICAgICBkb2NrZXJmaWxlMS52ZXJzaW9uLnNob3VsZC5lcXVhbChcImxhdGVzdFwiKTtcbiAgICAgICAgICAgIGRvY2tlcmZpbGUyLnZlcnNpb24uc2hvdWxkLmVxdWFsKFwic29tZXRhZzFcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCByZWFkIGEgZGlyZWN0b3J5IG9mIERvY2tlcmZpbGVzXCIsZnVuY3Rpb24oZG9uZSl7XG4gICAgICAgICAgICBOcG1jaUJ1aWxkRG9ja2VyLnJlYWREb2NrZXJmaWxlcygpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVhZERvY2tlcmZpbGVzQXJyYXlBcmc6TnBtY2lCdWlsZERvY2tlci5Eb2NrZXJmaWxlW10pe1xuICAgICAgICAgICAgICAgICAgICByZWFkRG9ja2VyZmlsZXNBcnJheUFyZ1sxXS52ZXJzaW9uLnNob3VsZC5lcXVhbChcInNvbWV0YWcxXCIpO1xuICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZUFycmF5ID0gcmVhZERvY2tlcmZpbGVzQXJyYXlBcmdcbiAgICAgICAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICBpdChcInNob3VsZCBzb3J0IGFuIGFycmF5IG9mIERvY2tlcmZpbGVzXCIsZnVuY3Rpb24oZG9uZSl7XG4gICAgICAgICAgICBOcG1jaUJ1aWxkRG9ja2VyLnNvcnREb2NrZXJmaWxlcyhzb3J0YWJsZUFycmF5KVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHNvcnRlZEFycmF5QXJnOk5wbWNpQnVpbGREb2NrZXIuRG9ja2VyZmlsZVtdKXtcbiAgICAgICAgICAgICAgICAgICAgYmVhdXR5bG9nLnN1Y2Nlc3MoXCJmaW5hbCByZXN1bHRcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHNvcnRlZEFycmF5QXJnKTtcbiAgICAgICAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCBjb3JyZWN0bHkgY2hhaW4gRG9ja2VyZmlsZSBoYW5kbGluZ1wiLGZ1bmN0aW9uKGRvbmUpe1xuICAgICAgICAgICAgTnBtY2lCdWlsZERvY2tlci5idWlsZCgpXG4gICAgICAgICAgICAgICAgLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xuICAgIGRlc2NyaWJlKFwiLnB1Ymxpc2guZG9ja2VyXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgaXQoXCJzaG91bGQgcHVibGlzaCBhbGwgYnVpbHQgRG9ja2VyZmlsZXNcIixmdW5jdGlvbihkb25lKXtcbiAgICAgICAgICAgIE5wbWNpUHVibGlzaC5wdWJsaXNoKFwiZG9ja2VyXCIpXG4gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgICAgICAgfSk7O1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBkZXNjcmliZShcIi50ZXN0Lm5wbVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGl0KFwic2hvdWxkIHNvdXJjZSBudm0gdXNpbmcgYmFzaCBhbmQgaW5zdGFsbCBhIHNwZWNpZmljIG5vZGUgdmVyc2lvbiwgdGhlbiB0ZXN0IGl0XCIsZnVuY3Rpb24oZG9uZSl7XG4gICAgICAgICAgICBOcG1jaVRlc3QudGVzdChcImxlZ2FjeVwiKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5wbWNpVGVzdC50ZXN0KFwibHRzXCIpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnBtY2lUZXN0LnRlc3QoXCJzdGFibGVcIik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcbiAgICBkZXNjcmliZShcInRlc3QuZG9ja2VyXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgaXQoXCJzaG91bGQgdGVzdCBkb2NrZXJmaWxlc1wiLGZ1bmN0aW9uKGRvbmUpe1xuICAgICAgICAgICAgTnBtY2lUZXN0LnRlc3QoXCJkb2NrZXJcIilcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcbn0pIl19