ssh2-they
v2.2.1
Published
Extends Mocha with the function `they` to transparently run tests in local and ssh mode
Downloads
49
Readme
Node.js ssh2-they
Extends [Mocha][mocha] with a new they
function replacing it
. The goal is
to execute the same test in multiple environments. This package was originally
written to test ssh2-fs, ssh2-exec and Nikita. For example, in
those packages, each test is run twice: the first time on a local environment and the second time over SSH.
If no environment is provided, the default behaviour of this package is to attempt to open a passwordless ssh connection on localhost with the current running user. Thus, it expects correct deployment of your ssh public key inside your own authorized_key file.
Additionally, you can call the configure
function with multiple environment parameters. Refer to the "ssh2-connect" and "ssh2" packages for a complete list of supported options.
Installation
This is OSS and licensed under the new BSD license.
npm install ssh2-fs
Examples
The below examples found inspiration in the exists test of the ssh2-fs module.
This test will connect to localhost with the current working user:
const should = require('should')
const fs = require('ssh2-fs')
const they = require('ssh2-they')
describe('exists', function(){
they('on file', function({ssh}, next){
fs.exists( ssh, "#{__filename}", function(err, exists){
exists.should.be.true()
next()
})
})
})
This test will attempt a remote connection using the root user:
const should = require('should')
const fs = require('ssh2-fs')
const they = require('ssh2-they').configure([
null,
{
debug: true,
ssh: null
}, {
debug: true,
ssh: {
host: 'localhost',
port: 22,
username: 'root',
privateKey: require('fs').readFileSync('/here/is/my/key')
}
}
])
describe('exists', function(){
they('on file', function({debug, ssh}, next){
fs.exists( ssh, "#{__filename}", function(err, exists){
exists.should.be.true()
next()
})
})
})
Travis integration
You can make it work with Travis by adding the following lines to your ".travis.yml" file:
before_script:
- "ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''"
- "cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys"
Contributors
- David Worms: https://github.com/wdavidw