added more tests

This commit is contained in:
Philipp Kunz 2016-06-01 04:18:31 +02:00
parent 09d96fd94c
commit 78aa36c2be
10 changed files with 63 additions and 46 deletions

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;

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

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;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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");
})
}) })
}) })

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
}

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);
@ -56,9 +60,9 @@ export class SshInstance {
sync(directionArg:string){ sync(directionArg:string){
if(this.sshSync && directionArg == "from"){ if(this.sshSync && directionArg == "from"){
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'");
} }
}; };

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);