"use strict"; require("typings-test"); require("should"); var smartssh = require("../dist/index"); 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.publicKey.should.equal("someExamplePublicKey"); }); it(".privateKey should be private key", function () { testSshKey.privateKey.should.equal("someExamplePrivateKey"); }); it(".publicKeyBase64 should be public key base 64 encoded", function () { testSshKey.publicKeyBase64; }); }); 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").publicKey.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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SSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHNEQUFzRCxFQUFDO1lBQ3RELGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBQztZQUNsQyxlQUFlLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNuRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQSIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCJcclxuaW1wb3J0IFwic2hvdWxkXCI7XHJcbmltcG9ydCBzbWFydHNzaCA9IHJlcXVpcmUoXCIuLi9kaXN0L2luZGV4XCIpO1xyXG5kZXNjcmliZShcInNtYXJ0c3NoXCIsZnVuY3Rpb24oKXtcclxuICAgIGxldCB0ZXN0U3NoSW5zdGFuY2U6c21hcnRzc2guU3NoSW5zdGFuY2U7XHJcbiAgICBsZXQgdGVzdFNzaEtleTpzbWFydHNzaC5Tc2hLZXk7XHJcbiAgICBkZXNjcmliZShcIi5Tc2hLZXlcIixmdW5jdGlvbigpe1xyXG4gICAgICAgIGl0KFwiJ25ldycga2V5d29yZCBzaG91bGQgY3JlYXRlIGEgdmFsaWQgU3NoS2V5IG9iamVjdFwiLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHRlc3RTc2hLZXkgPSBuZXcgc21hcnRzc2guU3NoS2V5KHtcclxuICAgICAgICAgICAgICAgIGhvc3Q6XCJleGFtcGxlLmNvbVwiLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVFeGFtcGxlUHJpdmF0ZUtleVwiLFxyXG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZUV4YW1wbGVQdWJsaWNLZXlcIlxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGVzdFNzaEtleS5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHNzaC5Tc2hLZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGl0KFwiLnR5cGUgc2hvdWxkIGJlIGEgdmFsaWQgdHlwZVwiLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHRlc3RTc2hLZXkudHlwZS5zaG91bGQuZXF1YWwoXCJkdXBsZXhcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCIucHVibGljS2V5IHNob3VsZCBiZSBwdWJsaWMga2V5XCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFNzaEtleS5wdWJsaWNLZXkuc2hvdWxkLmVxdWFsKFwic29tZUV4YW1wbGVQdWJsaWNLZXlcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCIucHJpdmF0ZUtleSBzaG91bGQgYmUgcHJpdmF0ZSBrZXlcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnByaXZhdGVLZXkuc2hvdWxkLmVxdWFsKFwic29tZUV4YW1wbGVQcml2YXRlS2V5XCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGl0KFwiLnB1YmxpY0tleUJhc2U2NCBzaG91bGQgYmUgcHVibGljIGtleSBiYXNlIDY0IGVuY29kZWRcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnB1YmxpY0tleUJhc2U2NDtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgICBkZXNjcmliZShcIi5Tc2hJbnN0YW5jZVwiLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgaXQoXCInbmV3JyBrZXl3b3JkIHNob3VsZCBjcmVhdGUgYSBuZXcgU3NoSW5zdGFuY2Ugb2JqZWN0IGZyb20gY2xhc3NcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UgPSBuZXcgc21hcnRzc2guU3NoSW5zdGFuY2UoKTtcclxuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLnNob3VsZC5iZS5pbnN0YW5jZW9mKHNtYXJ0c3NoLlNzaEluc3RhbmNlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpdChcIi5hZGRLZXkoKSBzaG91bGQgYWNjZXB0IGEgbmV3IFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UuYWRkS2V5KG5ldyBzbWFydHNzaC5Tc2hLZXkoe1xyXG4gICAgICAgICAgICAgICAgcHVibGljOlwic29tZVB1YmxpY0tleVwiLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXHJcbiAgICAgICAgICAgICAgICBob3N0OlwiZ2l0bGFiLmNvbVwiXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcclxuICAgICAgICAgICAgICAgIHB1YmxpYzpcInNvbWVQdWJsaWNLZXlcIixcclxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lUHJpdmF0ZUtleVwiLFxyXG4gICAgICAgICAgICAgICAgaG9zdDpcImJpdGJ1Y2tldC5vcmdcIlxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5hZGRLZXkobmV3IHNtYXJ0c3NoLlNzaEtleSh7XHJcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lR2l0SHViUHVibGljS2V5XCIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlOlwic29tZUdpdEh1YlByaXZhdGVLZXlcIixcclxuICAgICAgICAgICAgICAgIGhvc3Q6XCJnaXRodWIuY29tXCJcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGl0KFwiLnNzaEtleXMgc2hvdWxkIHBvaW50IHRvIGFuIGFycmF5IG9mIHNzaEtleXNcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBsZXQgc3NoS2V5QXJyYXkgPSB0ZXN0U3NoSW5zdGFuY2Uuc3NoS2V5cztcclxuICAgICAgICAgICAgc3NoS2V5QXJyYXkuc2hvdWxkLmJlLkFycmF5KCk7XHJcbiAgICAgICAgICAgIHNzaEtleUFycmF5WzBdLmhvc3Quc2hvdWxkLmVxdWFsKFwiZ2l0bGFiLmNvbVwiKTtcclxuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJiaXRidWNrZXQub3JnXCIpO1xyXG4gICAgICAgICAgICBzc2hLZXlBcnJheVsyXS5ob3N0LnNob3VsZC5lcXVhbChcImdpdGh1Yi5jb21cIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCIuZ2V0S2V5KCkgc2hvdWxkIGdldCBhIHNwZWNpZmljIGtleSBzZWxlY3RlZCBieSBob3N0XCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmdldEtleShcImdpdGh1Yi5jb21cIikucHVibGljS2V5LnNob3VsZC5lcXVhbChcInNvbWVHaXRIdWJQdWJsaWNLZXlcIik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpdChcIi5yZW1vdmVLZXkoKSBzaG91bGQgcmVtb3ZlIGEga2V5XCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLnJlbW92ZUtleSh0ZXN0U3NoSW5zdGFuY2UuZ2V0S2V5KFwiYml0YnVja2V0Lm9yZ1wiKSk7XHJcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5zc2hLZXlzWzFdLmhvc3Quc2hvdWxkLmVxdWFsKFwiZ2l0aHViLmNvbVwiKTtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbn0pIl19