dl
Version:
DreamLab Libs
159 lines (113 loc) • 5.34 kB
JavaScript
describe('OpalServer', function () {
afterEach(function () {
delete require.cache[require.resolve('../../lib/opal/OpalServer.js')];
});
it('require', function () {
var OpalServer = null;
expect(function () {
OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
}).not.toThrow();
expect(OpalServer).toBeTruthy();
});
it('creation', function () {
var OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
var YAML = require('core').yaml.YAML;
spyOn(YAML, 'parseFileSync').andReturn([{interfaces:{'public':{},'admin':{}}}]);
OpalServer.prototype._addMethods = function () {
this._methods['public:test'] = {};
this._methods['public:test2'] = {};
};
expect(function () {
var opalServer = new OpalServer();
opalServer.stopEventLoopMeasure();
expect(opalServer instanceof OpalServer).toBeTruthy();
}).not.toThrow();
});
it('get methods', function () {
var OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
var Request = require('core').http.Request;
var YAML = require('core').yaml.YAML;
spyOn(YAML, 'parseFileSync').andReturn([{interfaces:{'public':{},'admin':{}}}]);
OpalServer.prototype._addMethods = function () {
this._methods['public:test'] = {};
this._methods['public:test2'] = {};
};
var opalServer = null;
expect(function () {
opalServer = new OpalServer();
opalServer.stopEventLoopMeasure();
expect(opalServer.getMethods().list.length).toBe(0);
expect(opalServer.getMethods('public').list.length).toBe(2);
expect(opalServer.getMethods('something_wrong').list.length).toBe(0);
expect(function () {
opalServer.getInterface(new Request());
}).toThrow(OpalServer.Errors.NO_INTERFACE_IN_HOST_HEADER);
}).not.toThrow();
expect(opalServer instanceof OpalServer).toBeTruthy();
});
it('get interface', function () {
var OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
var Request = require('core').http.Request;
var YAML = require('core').yaml.YAML;
spyOn(YAML, 'parseFileSync').andReturn([{interfaces:{'public':{},'admin':{}}}]);
OpalServer.prototype._addMethods = function () {
this._methods['public:test'] = {};
this._methods['public:test2'] = {};
};
var opalServer = null;
expect(function () {
opalServer = new OpalServer();
opalServer.stopEventLoopMeasure();
expect(function () {
opalServer.getInterface(new Request());
}).toThrow(OpalServer.Errors.NO_INTERFACE_IN_HOST_HEADER);
expect(function () {
var req = new Request();
req.setHeader('host', 'public.test.onetapi.onet.pl');
var interfaceName = opalServer.getInterface(req);
expect(interfaceName).toEqual('public.test');
}).not.toThrow();
}).not.toThrow();
expect(opalServer instanceof OpalServer).toBeTruthy();
});
it('get method', function () {
var OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
var JsonRpcMethod = require('core').jsonrpc.JsonRpcMethod;
var Request = require('core').http.Request;
var YAML = require('core').yaml.YAML;
spyOn(YAML, 'parseFileSync').andReturn([{interfaces:{'public':{},'admin':{}}}]);
OpalServer.prototype._addMethods = function () {
this._methods['public:test'] = {};
this._methods['public:test2'] = {};
};
var opalServer = null;
var req = new Request();
var method = null;
req.setHeader('host', 'public.test.onetapi.onet.pl');
opalServer = new OpalServer();
opalServer.stopEventLoopMeasure();
expect(function () {
method = opalServer.getMethod('test', req);
expect(method instanceof JsonRpcMethod);
method = opalServer.getMethod('test!!!!!', req);
expect(method).toBe(false);
expect(function () {
opalServer.getMethod('test', new Request());
}).toThrow(OpalServer.Errors.NO_INTERFACE_IN_HOST_HEADER);
}).not.toThrow();
expect(opalServer instanceof OpalServer).toBeTruthy();
});
it('adding methods', function () {
require.cache = {};
var OpalServer = require('../../lib/opal/OpalServer.js').OpalServer;
var fs = require('fs');
var YAML = require('core').yaml.YAML;
spyOn(YAML, 'parseFileSync').andReturn([{interfaces:{'public':{},'admin':{}}}]);
spyOn(fs, 'readdirSync').andReturn(['GetFunctionDataMethod.js']);
//expect(function () {
//var opalServer = new OpalServer();
//}).not.toThrow();
//require = oldRequire;
//expect(opalServer instanceof OpalServer).toBeTruthy();
});
});