blob: d44baad5db8144bb828dee2213dbab7a722075f7 [file] [log] [blame]
var assert = require('assert');
var Modem = require('../lib/modem');
describe('Modem', function () {
beforeEach(function () { delete process.env.DOCKER_HOST; });
it('should default to /var/run/docker.sock', function () {
var modem = new Modem();
assert.ok(modem.socketPath);
assert.strictEqual(modem.socketPath, '/var/run/docker.sock');
});
it('should allow DOCKER_HOST=unix:///path/to/docker.sock', function () {
process.env.DOCKER_HOST = 'unix:///tmp/docker.sock';
var modem = new Modem();
assert.ok(modem.socketPath);
assert.strictEqual(modem.socketPath, '/tmp/docker.sock');
});
it('should interpret DOCKER_HOST=unix:// as /var/run/docker.sock', function () {
process.env.DOCKER_HOST = 'unix://';
var modem = new Modem();
assert.ok(modem.socketPath);
assert.strictEqual(modem.socketPath, '/var/run/docker.sock');
});
it('should interpret DOCKER_HOST=tcp://N.N.N.N:2376 as https', function () {
process.env.DOCKER_HOST = 'tcp://192.168.59.103:2376';
var modem = new Modem();
assert.ok(modem.host);
assert.ok(modem.port);
assert.ok(modem.protocol);
assert.strictEqual(modem.host, '192.168.59.103');
assert.strictEqual(modem.port, '2376');
assert.strictEqual(modem.protocol, 'https');
});
it('should interpret DOCKER_HOST=tcp://N.N.N.N:5555 as http', function () {
delete process.env.DOCKER_TLS_VERIFY;
process.env.DOCKER_HOST = 'tcp://192.168.59.105:5555';
var modem = new Modem();
assert.ok(modem.host);
assert.ok(modem.port);
assert.ok(modem.protocol);
assert.strictEqual(modem.host, '192.168.59.105');
assert.strictEqual(modem.port, '5555');
assert.strictEqual(modem.protocol, 'http');
});
it('should interpret DOCKER_HOST=tcp://N.N.N.N:5555 as http', function () {
process.env.DOCKER_TLS_VERIFY = '1';
process.env.DOCKER_HOST = 'tcp://192.168.59.105:5555';
var modem = new Modem();
assert.ok(modem.host);
assert.ok(modem.port);
assert.ok(modem.protocol);
assert.strictEqual(modem.host, '192.168.59.105');
assert.strictEqual(modem.port, '5555');
assert.strictEqual(modem.protocol, 'https');
});
it('should accept DOCKER_HOST=N.N.N.N:5555 as http', function () {
delete process.env.DOCKER_TLS_VERIFY;
process.env.DOCKER_HOST = '192.168.59.105:5555';
var modem = new Modem();
assert.ok(modem.host);
assert.ok(modem.port);
assert.ok(modem.protocol);
assert.strictEqual(modem.host, '192.168.59.105');
assert.strictEqual(modem.port, '5555');
assert.strictEqual(modem.protocol, 'http');
});
it('should auto encode querystring option maps as JSON', function () {
var modem = new Modem();
var opts = {
"limit": 12,
"filters": {
"label": ["staging", "env=green"]
}
}
var control = 'limit=12&filters={"label"%3A["staging"%2C"env%3Dgreen"]}'
var qs = modem.buildQuerystring(opts);
assert.strictEqual(decodeURI(qs), control);
});
});