70 lines
3.1 KiB
JavaScript
Executable file
70 lines
3.1 KiB
JavaScript
Executable file
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const extender_1 = require("../lib/extender");
|
|
const mockdriver_1 = require("./mockdriver");
|
|
let noop_define = (n, m, p) => { };
|
|
let noop_exec = (p, m, d) => { };
|
|
describe('extender', () => {
|
|
let sessionId = '1234';
|
|
it('should call executor_.defineCommand', (done) => {
|
|
let name = 'customCommand';
|
|
let method = 'post';
|
|
let path = '/custom/command';
|
|
let mockdriver = mockdriver_1.buildMockDriver(sessionId, (n, m, p) => {
|
|
expect(n).toEqual(name);
|
|
expect(m).toEqual(method);
|
|
expect(p).toEqual(path);
|
|
done();
|
|
}, noop_exec);
|
|
let extender = new extender_1.Extender(mockdriver);
|
|
extender.defineCommand(name, [], method, path);
|
|
});
|
|
it('should schedule custom commands', (done) => {
|
|
let name = 'customCommand';
|
|
let method = 'post';
|
|
let path = '/custom/command';
|
|
let mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, (p, m, d) => {
|
|
expect(p).toEqual(path);
|
|
expect(m).toEqual(method);
|
|
expect(d['sessionId']).toEqual(sessionId);
|
|
expect(Object.keys(d).length).toEqual(1);
|
|
done();
|
|
});
|
|
let extender = new extender_1.Extender(mockdriver);
|
|
extender.defineCommand(name, [], method, path);
|
|
extender.execCommand(name, method, []);
|
|
});
|
|
it('should use command parameters', (done) => {
|
|
let name = 'customCommand';
|
|
let method = 'post';
|
|
let paramNames = ['var1', 'var2'];
|
|
let paramValues = ['val1', 'val2'];
|
|
let path = '/custom/:var1/command';
|
|
let mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, (p, m, d) => {
|
|
expect(p).toEqual('/custom/val1/command');
|
|
expect(m).toEqual(method);
|
|
expect(d['sessionId']).toEqual(sessionId);
|
|
expect(d['var2']).toEqual('val2');
|
|
expect(Object.keys(d).length).toEqual(2);
|
|
done();
|
|
});
|
|
let extender = new extender_1.Extender(mockdriver);
|
|
extender.defineCommand(name, paramNames, method, path);
|
|
extender.execCommand(name, method, paramValues);
|
|
});
|
|
it('should not be able to exec a command that has not been defined', () => {
|
|
let mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, noop_exec);
|
|
let extender = new extender_1.Extender(mockdriver);
|
|
expect(() => { extender.execCommand('', '', []); }).toThrowError(RangeError);
|
|
});
|
|
it('should require correct number of parameters for execution', () => {
|
|
let name = 'customCommand';
|
|
let method = 'post';
|
|
let path = '/custom/:command';
|
|
let mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, noop_exec);
|
|
let extender = new extender_1.Extender(mockdriver);
|
|
extender.defineCommand(name, ['command'], method, path);
|
|
expect(() => { extender.execCommand(name, method, []); }).toThrowError(RangeError);
|
|
});
|
|
});
|
|
//# sourceMappingURL=extender_spec.js.map
|