smartssh/test/test.ts

85 lines
2.7 KiB
TypeScript
Raw Normal View History

2018-09-17 20:32:31 +00:00
import { expect, tap } from '@pushrocks/tapbundle';
import smartssh = require('../ts/index');
import path = require('path');
2017-06-15 15:52:22 +00:00
2018-09-17 20:32:31 +00:00
let testSshInstance: smartssh.SshInstance;
let testSshKey: smartssh.SshKey;
2017-06-15 15:52:22 +00:00
tap.test('should create a valid SshKey object', async () => {
testSshKey = new smartssh.SshKey({
host: 'example.com',
private: 'someExamplePrivateKey',
public: 'someExamplePublicKey'
2018-09-17 20:32:31 +00:00
});
expect(testSshKey).to.be.instanceof(smartssh.SshKey);
});
2017-06-15 15:52:22 +00:00
tap.test('.type should be a valid type', async () => {
2018-09-17 20:32:31 +00:00
expect(testSshKey.type).equal('duplex');
});
2017-06-15 15:52:22 +00:00
tap.test('.publicKey should be public key', async () => {
2018-09-17 20:32:31 +00:00
expect(testSshKey.pubKey).equal('someExamplePublicKey');
});
2017-06-15 15:52:22 +00:00
tap.test('.privateKey should be private key', async () => {
2018-09-17 20:32:31 +00:00
expect(testSshKey.privKey).equal('someExamplePrivateKey');
});
2017-06-15 15:52:22 +00:00
tap.test('.publicKeyBase64 should be public key base 64 encoded', async () => {
// tslint:disable-next-line:no-unused-expression
2018-09-17 20:32:31 +00:00
testSshKey.pubKeyBase64;
});
2017-06-15 15:52:22 +00:00
tap.test('.store() should store the file to disk', async () => {
2018-09-17 20:32:31 +00:00
testSshKey.store(path.join(process.cwd(), 'test/temp'));
});
2017-06-15 15:52:22 +00:00
// SSH INstance
tap.test("'new' keyword should create a new SshInstance object from class", async () => {
testSshInstance = new smartssh.SshInstance({
sshDirPath: path.join(process.cwd(), 'test/temp/')
2018-09-17 20:32:31 +00:00
});
expect(testSshInstance).be.instanceof(smartssh.SshInstance);
});
2017-06-15 15:52:22 +00:00
tap.test('.addKey() should accept a new SshKey object', async () => {
2018-09-17 20:32:31 +00:00
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'
})
);
});
2017-06-15 15:52:22 +00:00
tap.test('.sshKeys should point to an array of sshKeys', async () => {
2018-09-17 20:32:31 +00:00
let sshKeyArray = testSshInstance.sshKeys;
expect(sshKeyArray).be.instanceOf(Array);
expect(sshKeyArray[0].host).equal('gitlab.com');
expect(sshKeyArray[1].host).equal('bitbucket.org');
expect(sshKeyArray[2].host).equal('github.com');
});
2017-06-15 15:52:22 +00:00
tap.test('.getKey() should get a specific key selected by host', async () => {
2018-09-17 20:32:31 +00:00
expect(testSshInstance.getKey('github.com').pubKey).equal('someGitHubPublicKey');
});
2017-06-15 15:52:22 +00:00
tap.test('.removeKey() should remove a key', async () => {
2018-09-17 20:32:31 +00:00
testSshInstance.removeKey(testSshInstance.getKey('bitbucket.org'));
expect(testSshInstance.sshKeys[1].host).equal('github.com');
});
2017-06-15 15:52:22 +00:00
tap.test('it should store to disk', async () => {
2018-09-17 20:32:31 +00:00
testSshInstance.writeToDisk();
});
2017-06-15 15:52:22 +00:00
2018-09-17 20:32:31 +00:00
tap.start();