added more tests

This commit is contained in:
2016-06-01 04:18:31 +02:00
parent 09d96fd94c
commit 78aa36c2be
10 changed files with 63 additions and 46 deletions
-1
View File
@@ -1,4 +1,3 @@
import "typings-global"; import "typings-global";
import { SshKey } from "./smartssh.classes.sshkey"; import { SshKey } from "./smartssh.classes.sshkey";
export declare let sshKeyArrayFromDir: (dirArg: string) => SshKey[]; export declare let sshKeyArrayFromDir: (dirArg: string) => SshKey[];
export declare let getKeyIndex: (hostArg: string) => number;
+1 -4
View File
@@ -4,8 +4,5 @@ exports.sshKeyArrayFromDir = function (dirArg) {
var sshKeyArray = []; //TODO var sshKeyArray = []; //TODO
return sshKeyArray; return sshKeyArray;
}; };
exports.getKeyIndex = function (hostArg) {
return 0; //TODO
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBSVosMEJBQWtCLEdBQUcsVUFBUyxNQUFhO0lBQ2xELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUE7QUFFVSxtQkFBVyxHQUFHLFVBQVMsT0FBYztJQUM1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUNyQixDQUFDLENBQUEiLCJmaWxlIjoic21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIlxyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtTc2hLZXl9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5XCI7XHJcblxyXG5leHBvcnQgbGV0IHNzaEtleUFycmF5RnJvbURpciA9IGZ1bmN0aW9uKGRpckFyZzpzdHJpbmcpOlNzaEtleVtde1xyXG4gICAgbGV0IHNzaEtleUFycmF5ID0gW107IC8vVE9ET1xyXG4gICAgcmV0dXJuIHNzaEtleUFycmF5O1xyXG59XHJcblxyXG5leHBvcnQgbGV0IGdldEtleUluZGV4ID0gZnVuY3Rpb24oaG9zdEFyZzpzdHJpbmcpe1xyXG4gICAgcmV0dXJuIDA7IC8vVE9ETyBcclxufSJdfQ== //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBSVosMEJBQWtCLEdBQUcsVUFBUyxNQUFhO0lBQ2xELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUEiLCJmaWxlIjoic21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIlxyXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtTc2hLZXl9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5XCI7XHJcblxyXG5leHBvcnQgbGV0IHNzaEtleUFycmF5RnJvbURpciA9IGZ1bmN0aW9uKGRpckFyZzpzdHJpbmcpOlNzaEtleVtde1xyXG4gICAgbGV0IHNzaEtleUFycmF5ID0gW107IC8vVE9ET1xyXG4gICAgcmV0dXJuIHNzaEtleUFycmF5O1xyXG59Il19
+1 -1
View File
@@ -3,7 +3,7 @@ import { SshKey } from "./smartssh.classes.sshkey";
export declare class SshInstance { export declare class SshInstance {
private sshConfig; private sshConfig;
private sshDir; private sshDir;
private sshKeysVar; private sshKeyArray;
private sshSync; private sshSync;
constructor(optionsArg?: { constructor(optionsArg?: {
sshDirPath?: string; sshDirPath?: string;
+18 -15
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+15 -6
View File
File diff suppressed because one or more lines are too long
+14 -5
View File
@@ -5,11 +5,11 @@ describe("smartssh",function(){
let testSshInstance:smartssh.SshInstance; let testSshInstance:smartssh.SshInstance;
let testSshKey:smartssh.SshKey; let testSshKey:smartssh.SshKey;
describe("SshInstance",function(){ describe("SshInstance",function(){
it("should create a new SshInstance object from class",function(){ it("'new' keyword should create a new SshInstance object from class",function(){
testSshInstance = new smartssh.SshInstance(); testSshInstance = new smartssh.SshInstance();
testSshInstance.should.be.instanceof(smartssh.SshInstance); testSshInstance.should.be.instanceof(smartssh.SshInstance);
}); });
it("should accept a new SshKey object",function(){ it(".addKey() should accept a new SshKey object",function(){
testSshInstance.addKey(new smartssh.SshKey({ testSshInstance.addKey(new smartssh.SshKey({
public:"somePublicKey", public:"somePublicKey",
private:"somePrivateKey", private:"somePrivateKey",
@@ -21,15 +21,24 @@ describe("smartssh",function(){
host:"bitbucket.org" host:"bitbucket.org"
})); }));
testSshInstance.addKey(new smartssh.SshKey({ testSshInstance.addKey(new smartssh.SshKey({
public:"somePublicKey", public:"someGitHubPublicKey",
private:"somePrivateKey", private:"someGitHubPrivateKey",
host:"github.com" host:"github.com"
})); }));
}); });
it("should return an array of sshKeys",function(){ it(".sshKeys should point to an array of sshKeys",function(){
let sshKeyArray = testSshInstance.sshKeys; let sshKeyArray = testSshInstance.sshKeys;
sshKeyArray.should.be.Array(); sshKeyArray.should.be.Array();
sshKeyArray[0].host.should.equal("gitlab.com"); 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");
})
}) })
}) })
-4
View File
@@ -6,7 +6,3 @@ export let sshKeyArrayFromDir = function(dirArg:string):SshKey[]{
let sshKeyArray = []; //TODO let sshKeyArray = []; //TODO
return sshKeyArray; return sshKeyArray;
} }
export let getKeyIndex = function(hostArg:string){
return 0; //TODO
}
+10 -6
View File
@@ -27,19 +27,23 @@ export class SshInstance {
}; };
removeKey(sshKeyArg:SshKey){ removeKey(sshKeyArg:SshKey){
this.sync("from"); this.sync("from");
let keyIndex = helpers.getKeyIndex(sshKeyArg.host); let filteredArray = this.sshKeyArray.filter((sshKeyArg2:SshKey) => {
this.sshKeyArray.splice(keyIndex,1); return (sshKeyArg != sshKeyArg2);
});
this.sshKeyArray = filteredArray;
this.sync("to"); this.sync("to");
}; };
replaceKey(sshKeyOldArg:SshKey,sshKeyNewArg:SshKey){ replaceKey(sshKeyOldArg:SshKey,sshKeyNewArg:SshKey){
this.sync("from"); this.sync("from");
let keyIndex = helpers.getKeyIndex(sshKeyOldArg.host); let filteredArray = this.sshKeyArray.filter((sshKeyArg:SshKey) => {
this.sshKeyArray.splice(keyIndex,1,sshKeyNewArg); return (sshKeyArg.host == "some"); //TODO
});
this.sshKeyArray = filteredArray;
this.sync("to"); this.sync("to");
}; };
// //
getKey(hostArg:string){ getKey(hostArg:string):SshKey{
this.sync("from"); this.sync("from");
let filteredArray = this.sshKeyArray.filter(function(keyArg){ let filteredArray = this.sshKeyArray.filter(function(keyArg){
return (keyArg.host == hostArg); return (keyArg.host == hostArg);
@@ -58,7 +62,7 @@ export class SshInstance {
this.sshDir.syncFromDir(); // call sync method of sshDir class; this.sshDir.syncFromDir(); // call sync method of sshDir class;
} else if(this.sshSync && directionArg == "to") { } else if(this.sshSync && directionArg == "to") {
this.sshDir.syncToDir(); this.sshDir.syncToDir();
} else { } else if(this.sshSync) {
throw new Error("directionArg not recognised. Must be 'to' or 'from'"); throw new Error("directionArg not recognised. Must be 'to' or 'from'");
} }
}; };
+1 -1
View File
@@ -23,7 +23,7 @@ export class SshKey {
return plugins.base64.encode(this.privKey); return plugins.base64.encode(this.privKey);
} }
get publicKey(){ get publicKey(){
return this.publicKey; return this.pubKey;
} }
get publicKeyBase64(){ get publicKeyBase64(){
return plugins.base64.encode(this.pubKey); return plugins.base64.encode(this.pubKey);