smartssh/test/test.js

79 lines
11 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({
sshDirPath: path.join(process.cwd(), "test/temp/")
});
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");
});
it("it should store to disk", function () {
testSshInstance.writeToDisk();
});
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,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aW5ncy10ZXN0XCJcbmltcG9ydCBcInNob3VsZFwiO1xuaW1wb3J0IHNtYXJ0c3NoID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXhcIik7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZGVzY3JpYmUoXCJzbWFydHNzaFwiLGZ1bmN0aW9uKCl7XG4gICAgbGV0IHRlc3RTc2hJbnN0YW5jZTpzbWFydHNzaC5Tc2hJbnN0YW5jZTtcbiAgICBsZXQgdGVzdFNzaEtleTpzbWFydHNzaC5Tc2hLZXk7XG4gICAgZGVzY3JpYmUoXCIuU3NoS2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgaXQoXCInbmV3JyBrZXl3b3JkIHNob3VsZCBjcmVhdGUgYSB2YWxpZCBTc2hLZXkgb2JqZWN0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkgPSBuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBob3N0OlwiZXhhbXBsZS5jb21cIixcbiAgICAgICAgICAgICAgICBwcml2YXRlOlwic29tZUV4YW1wbGVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZUV4YW1wbGVQdWJsaWNLZXlcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnNob3VsZC5iZS5pbnN0YW5jZW9mKHNtYXJ0c3NoLlNzaEtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi50eXBlIHNob3VsZCBiZSBhIHZhbGlkIHR5cGVcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS50eXBlLnNob3VsZC5lcXVhbChcImR1cGxleFwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnB1YmxpY0tleSBzaG91bGQgYmUgcHVibGljIGtleVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnB1YktleS5zaG91bGQuZXF1YWwoXCJzb21lRXhhbXBsZVB1YmxpY0tleVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnByaXZhdGVLZXkgc2hvdWxkIGJlIHByaXZhdGUga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkucHJpdktleS5zaG91bGQuZXF1YWwoXCJzb21lRXhhbXBsZVByaXZhdGVLZXlcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5wdWJsaWNLZXlCYXNlNjQgc2hvdWxkIGJlIHB1YmxpYyBrZXkgYmFzZSA2NCBlbmNvZGVkXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkucHViS2V5QmFzZTY0O1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuc3RvcmUoKSBzaG91bGQgc3RvcmUgdGhlIGZpbGUgdG8gZGlza1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnN0b3JlKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLFwidGVzdC90ZW1wXCIpKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgZGVzY3JpYmUoXCIuU3NoSW5zdGFuY2VcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIG5ldyBTc2hJbnN0YW5jZSBvYmplY3QgZnJvbSBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UgPSBuZXcgc21hcnRzc2guU3NoSW5zdGFuY2Uoe1xuICAgICAgICAgICAgICAgIHNzaERpclBhdGg6IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLFwidGVzdC90ZW1wL1wiKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2Uuc2hvdWxkLmJlLmluc3RhbmNlb2Yoc21hcnRzc2guU3NoSW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuYWRkS2V5KCkgc2hvdWxkIGFjY2VwdCBhIG5ldyBTc2hLZXkgb2JqZWN0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5hZGRLZXkobmV3IHNtYXJ0c3NoLlNzaEtleSh7XG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZVB1YmxpY0tleVwiLFxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lUHJpdmF0ZUtleVwiLFxuICAgICAgICAgICAgICAgIGhvc3Q6XCJnaXRsYWIuY29tXCJcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5hZGRLZXkobmV3IHNtYXJ0c3NoLlNzaEtleSh7XG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZVB1YmxpY0tleVwiLFxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lUHJpdmF0ZUtleVwiLFxuICAgICAgICAgICAgICAgIGhvc3Q6XCJiaXRidWNrZXQub3JnXCJcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5hZGRLZXkobmV3IHNtYXJ0c3NoLlNzaEtleSh7XG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZUdpdEh1YlB1YmxpY0tleVwiLFxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lR2l0SHViUHJpdmF0ZUtleVwiLFxuICAgICAgICAgICAgICAgIGhvc3Q6XCJnaXRodWIuY29tXCJcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnNzaEtleXMgc2hvdWxkIHBvaW50IHRvIGFuIGFycmF5IG9mIHNzaEtleXNcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgbGV0IHNzaEtleUFycmF5ID0gdGVzdFNzaEluc3RhbmNlLnNzaEtleXM7XG4gICAgICAgICAgICBzc2hLZXlBcnJheS5zaG91bGQuYmUuQXJyYXkoKTtcbiAgICAgICAgICAgIHNzaEtleUFycmF5WzBdLmhvc3Quc2hvdWxkLmVxdWFsKFwiZ2l0bGFiLmNvbVwiKTtcbiAgICAgICAgICAgIHNzaEtleUFycmF5WzFdLmhvc3Quc2hvdWxkLmVxdWFsKFwiYml0YnVja2V0Lm9yZ1wiKTtcbiAgICAgICAgICAgIHNzaEtleUFycmF5WzJdLmhvc3Quc2hvdWxkLmVxdWFsKFwiZ2l0aHViLmNvbVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLmdldEtleSgpIHNob3VsZCBnZXQgYSBzcGVjaWZpYyBrZXkgc2VsZWN0ZWQgYnkgaG9zdFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UuZ2V0S2V5KFwiZ2l0aHViLmNvbVwiKS5wdWJLZXkuc2hvdWxkLmVxdWFsKFwic29tZUdpdEh1YlB1YmxpY0tleVwiKTtcbiAgICAgICAgfSlcbiAgICAgICAgaXQoXCIucmVtb3ZlS2V5KCkgc2hvdWxkIHJlbW92ZSBhIGtleVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UucmVtb3ZlS2V5KHRlc3RTc2hJbnN0YW5jZS5nZXRLZXkoXCJiaXRidWNrZXQub3JnXCIpKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5zc2hLZXlzWzFdLmhvc3Quc2hvdWxkLmVxdWFsKFwiZ2l0aHViLmNvbVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiaXQgc2hvdWxkIHN0b3JlIHRvIGRpc2tcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLndyaXRlVG9EaXNrKCk7XG4gICAgICAgIH0pXG4gICAgfSk7XG59KSJdfQ==