extender_spec.js 3.07 KB
Newer Older
jatuporn Tonggasem's avatar
jatuporn Tonggasem committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
"use strict";
var extender_1 = require("../lib/extender");
var mockdriver_1 = require("./mockdriver");
var noop_define = function (n, m, p) { };
var noop_exec = function (p, m, d) { };
describe('extender', function () {
    var sessionId = '1234';
    it('should call executor_.defineCommand', function (done) {
        var name = 'customCommand';
        var method = 'post';
        var path = '/custom/command';
        var mockdriver = mockdriver_1.buildMockDriver(sessionId, function (n, m, p) {
            expect(n).toEqual(name);
            expect(m).toEqual(method);
            expect(p).toEqual(path);
            done();
        }, noop_exec);
        var extender = new extender_1.Extender(mockdriver);
        extender.defineCommand(name, [], method, path);
    });
    it('should schedule custom commands', function (done) {
        var name = 'customCommand';
        var method = 'post';
        var path = '/custom/command';
        var mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, function (p, m, d) {
            expect(p).toEqual(path);
            expect(m).toEqual(method);
            expect(d['sessionId']).toEqual(sessionId);
            expect(Object.keys(d).length).toEqual(1);
            done();
        });
        var extender = new extender_1.Extender(mockdriver);
        extender.defineCommand(name, [], method, path);
        extender.execCommand(name, method, []);
    });
    it('should use command parameters', function (done) {
        var name = 'customCommand';
        var method = 'post';
        var paramNames = ['var1', 'var2'];
        var paramValues = ['val1', 'val2'];
        var path = '/custom/:var1/command';
        var mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, function (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();
        });
        var 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', function () {
        var mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, noop_exec);
        var extender = new extender_1.Extender(mockdriver);
        expect(function () { extender.execCommand('', '', []); }).toThrowError(RangeError);
    });
    it('should require correct number of parameters for execution', function () {
        var name = 'customCommand';
        var method = 'post';
        var path = '/custom/:command';
        var mockdriver = mockdriver_1.buildMockDriver(sessionId, noop_define, noop_exec);
        var extender = new extender_1.Extender(mockdriver);
        extender.defineCommand(name, ['command'], method, path);
        expect(function () { extender.execCommand(name, method, []); }).toThrowError(RangeError);
    });
});
//# sourceMappingURL=extender_spec.js.map