smartssh/test/test.js
2016-06-26 04:07:03 +02:00

74 lines
10 KiB
JavaScript

"use strict";
require("typings-test");
require("should");
var smartssh = require("../dist/index");
var path = require("path");
describe("smartssh", function () {
var testSshInstance;
var testSshKey;
describe(".SshKey", function () {
it("'new' keyword should create a valid SshKey object", function () {
testSshKey = new smartssh.SshKey({
host: "example.com",
private: "someExamplePrivateKey",
public: "someExamplePublicKey"
});
testSshKey.should.be.instanceof(smartssh.SshKey);
});
it(".type should be a valid type", function () {
testSshKey.type.should.equal("duplex");
});
it(".publicKey should be public key", function () {
testSshKey.pubKey.should.equal("someExamplePublicKey");
});
it(".privateKey should be private key", function () {
testSshKey.privKey.should.equal("someExamplePrivateKey");
});
it(".publicKeyBase64 should be public key base 64 encoded", function () {
testSshKey.pubKeyBase64;
});
it(".store() should store the file to disk", function () {
testSshKey.store(path.join(process.cwd(), "test/temp"));
});
});
describe(".SshInstance", function () {
it("'new' keyword should create a new SshInstance object from class", function () {
testSshInstance = new smartssh.SshInstance();
testSshInstance.should.be.instanceof(smartssh.SshInstance);
});
it(".addKey() should accept a new SshKey object", function () {
testSshInstance.addKey(new smartssh.SshKey({
public: "somePublicKey",
private: "somePrivateKey",
host: "gitlab.com"
}));
testSshInstance.addKey(new smartssh.SshKey({
public: "somePublicKey",
private: "somePrivateKey",
host: "bitbucket.org"
}));
testSshInstance.addKey(new smartssh.SshKey({
public: "someGitHubPublicKey",
private: "someGitHubPrivateKey",
host: "github.com"
}));
});
it(".sshKeys should point to an array of sshKeys", function () {
var sshKeyArray = testSshInstance.sshKeys;
sshKeyArray.should.be.Array();
sshKeyArray[0].host.should.equal("gitlab.com");
sshKeyArray[1].host.should.equal("bitbucket.org");
sshKeyArray[2].host.should.equal("github.com");
});
it(".getKey() should get a specific key selected by host", function () {
testSshInstance.getKey("github.com").pubKey.should.equal("someGitHubPublicKey");
});
it(".removeKey() should remove a key", function () {
testSshInstance.removeKey(testSshInstance.getKey("bitbucket.org"));
testSshInstance.sshKeys[1].host.should.equal("github.com");
});
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDLE9BQU8sQ0FBQztZQUMxQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxzREFBc0QsRUFBQztZQUN0RCxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUE7UUFDRixFQUFFLENBQUMsa0NBQWtDLEVBQUM7WUFDbEMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDbkUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUEiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtdGVzdFwiXG5pbXBvcnQgXCJzaG91bGRcIjtcbmltcG9ydCBzbWFydHNzaCA9IHJlcXVpcmUoXCIuLi9kaXN0L2luZGV4XCIpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmRlc2NyaWJlKFwic21hcnRzc2hcIixmdW5jdGlvbigpe1xuICAgIGxldCB0ZXN0U3NoSW5zdGFuY2U6c21hcnRzc2guU3NoSW5zdGFuY2U7XG4gICAgbGV0IHRlc3RTc2hLZXk6c21hcnRzc2guU3NoS2V5O1xuICAgIGRlc2NyaWJlKFwiLlNzaEtleVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGl0KFwiJ25ldycga2V5d29yZCBzaG91bGQgY3JlYXRlIGEgdmFsaWQgU3NoS2V5IG9iamVjdFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5ID0gbmV3IHNtYXJ0c3NoLlNzaEtleSh7XG4gICAgICAgICAgICAgICAgaG9zdDpcImV4YW1wbGUuY29tXCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVFeGFtcGxlUHJpdmF0ZUtleVwiLFxuICAgICAgICAgICAgICAgIHB1YmxpYzpcInNvbWVFeGFtcGxlUHVibGljS2V5XCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGVzdFNzaEtleS5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHNzaC5Tc2hLZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIudHlwZSBzaG91bGQgYmUgYSB2YWxpZCB0eXBlXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkudHlwZS5zaG91bGQuZXF1YWwoXCJkdXBsZXhcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5wdWJsaWNLZXkgc2hvdWxkIGJlIHB1YmxpYyBrZXlcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5wdWJLZXkuc2hvdWxkLmVxdWFsKFwic29tZUV4YW1wbGVQdWJsaWNLZXlcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5wcml2YXRlS2V5IHNob3VsZCBiZSBwcml2YXRlIGtleVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnByaXZLZXkuc2hvdWxkLmVxdWFsKFwic29tZUV4YW1wbGVQcml2YXRlS2V5XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIucHVibGljS2V5QmFzZTY0IHNob3VsZCBiZSBwdWJsaWMga2V5IGJhc2UgNjQgZW5jb2RlZFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnB1YktleUJhc2U2NDtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnN0b3JlKCkgc2hvdWxkIHN0b3JlIHRoZSBmaWxlIHRvIGRpc2tcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5zdG9yZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSxcInRlc3QvdGVtcFwiKSk7XG4gICAgICAgIH0pXG4gICAgfSk7XG4gICAgZGVzY3JpYmUoXCIuU3NoSW5zdGFuY2VcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIG5ldyBTc2hJbnN0YW5jZSBvYmplY3QgZnJvbSBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UgPSBuZXcgc21hcnRzc2guU3NoSW5zdGFuY2UoKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHNzaC5Tc2hJbnN0YW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5hZGRLZXkoKSBzaG91bGQgYWNjZXB0IGEgbmV3IFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGxhYi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImJpdGJ1Y2tldC5vcmdcIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lR2l0SHViUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVHaXRIdWJQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGh1Yi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuc3NoS2V5cyBzaG91bGQgcG9pbnQgdG8gYW4gYXJyYXkgb2Ygc3NoS2V5c1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBsZXQgc3NoS2V5QXJyYXkgPSB0ZXN0U3NoSW5zdGFuY2Uuc3NoS2V5cztcbiAgICAgICAgICAgIHNzaEtleUFycmF5LnNob3VsZC5iZS5BcnJheSgpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMF0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRsYWIuY29tXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJiaXRidWNrZXQub3JnXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMl0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuZ2V0S2V5KCkgc2hvdWxkIGdldCBhIHNwZWNpZmljIGtleSBzZWxlY3RlZCBieSBob3N0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5nZXRLZXkoXCJnaXRodWIuY29tXCIpLnB1YktleS5zaG91bGQuZXF1YWwoXCJzb21lR2l0SHViUHVibGljS2V5XCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdChcIi5yZW1vdmVLZXkoKSBzaG91bGQgcmVtb3ZlIGEga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5yZW1vdmVLZXkodGVzdFNzaEluc3RhbmNlLmdldEtleShcImJpdGJ1Y2tldC5vcmdcIikpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLnNzaEtleXNbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KVxuICAgIH0pO1xufSkiXX0=