Automatically proxy methods from Adaptors to Connections
This commit is contained in:
parent
733c13df13
commit
77ecc2a82b
|
@ -40,7 +40,11 @@ var Connection = module.exports = function Connection(opts) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils.proxyFunctionsToObject(this.adaptor.commands, this.adaptor, this);
|
for (var opt in this.adaptor) {
|
||||||
|
if (!this[opt] && typeof this.adaptor[opt] === 'function') {
|
||||||
|
this[opt] = this.adaptor[opt].bind(this.adaptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Utils.subclass(Connection, EventEmitter);
|
Utils.subclass(Connection, EventEmitter);
|
||||||
|
|
|
@ -1,16 +1,22 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var Robot = source("robot"),
|
var Loopback = source('test/loopback'),
|
||||||
|
Robot = source("robot"),
|
||||||
Logger = source('logger'),
|
Logger = source('logger'),
|
||||||
Utils = source('utils');
|
Utils = source('utils');
|
||||||
|
|
||||||
describe("Connection", function() {
|
describe("Connection", function() {
|
||||||
var robot = new Robot({
|
var robot, connection;
|
||||||
name: "Robby",
|
|
||||||
connection: { name: 'loopback', adaptor: 'loopback', port: "/dev/null" }
|
beforeEach(function() {
|
||||||
|
robot = new Robot({
|
||||||
|
name: "Robby",
|
||||||
|
connection: { name: 'loopback', adaptor: 'loopback', port: "/dev/null" }
|
||||||
|
});
|
||||||
|
|
||||||
|
connection = robot.connections.loopback;
|
||||||
});
|
});
|
||||||
|
|
||||||
var connection = robot.connections.loopback;
|
|
||||||
|
|
||||||
describe("#constructor", function() {
|
describe("#constructor", function() {
|
||||||
it("sets @robot to the passed robot", function() {
|
it("sets @robot to the passed robot", function() {
|
||||||
|
@ -24,10 +30,29 @@ describe("Connection", function() {
|
||||||
it("sets @port to the passed port", function() {
|
it("sets @port to the passed port", function() {
|
||||||
expect(connection.port.toString()).to.be.eql("/dev/null");
|
expect(connection.port.toString()).to.be.eql("/dev/null");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("proxies methods from the Adaptor", function() {
|
||||||
|
Loopback.prototype.test = function() { return "Test" };
|
||||||
|
|
||||||
|
robot = new Robot({
|
||||||
|
name: "Robby",
|
||||||
|
connection: { name: 'loopback', adaptor: 'loopback', port: "/dev/null" }
|
||||||
|
});
|
||||||
|
|
||||||
|
connection = robot.connections.loopback;
|
||||||
|
|
||||||
|
expect(connection.test()).to.be.eql("Test");
|
||||||
|
|
||||||
|
delete Loopback.prototype.test;
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("#toJSON", function() {
|
describe("#toJSON", function() {
|
||||||
var json = connection.toJSON();
|
var json;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
json = connection.toJSON();
|
||||||
|
});
|
||||||
|
|
||||||
it("returns an object", function() {
|
it("returns an object", function() {
|
||||||
expect(json).to.be.an('object');
|
expect(json).to.be.an('object');
|
||||||
|
|
Loading…
Reference in New Issue