UNPKG

@exabyte-io/chimpy

Version:

Develop acceptance tests & end-to-end tests with realtime feedback.

55 lines (43 loc) 1.89 kB
jest.dontMock('../lib/session-factory'); jest.dontMock('../lib/session-manager'); describe('Session Factory', function () { describe('Constructor', function () { it('sets the options on the instance when no exceptions are thrown', function () { var SessionFactory = require('../lib/session-factory'); var options = {port: 1234, browser: 'something'}; var session = new SessionFactory(options); expect(session.options).toBe(options); }); it('throws when options is not passed', function () { var SessionFactory = require('../lib/session-factory'); var session = function () { new SessionFactory(); }; expect(session).toThrowError('options is required'); }); it('throws when options.port is not passed', function () { var SessionFactory = require('../lib/session-factory'); var options = {}; var session = function () { new SessionFactory({}); }; expect(session).toThrowError('options.port is required'); }); it('throws when options.browser and options.device is not passed', function () { var SessionFactory = require('../lib/session-factory'); var options = {port: 1234}; var session = function () { new SessionFactory(options); }; expect(session).toThrowError('[chimp][session-manager-factory] options.browser or options.deviceName is required'); }); it('throws when options.user and options.key is not passed and not using localhost', function () { var SessionFactory = require('../lib/session-factory'); var options = {port: 1234, browser: 'firefox', host: 'browserstack.com'}; var session = function () { new SessionFactory(options); }; expect(session).toThrowError('[chimp][session-manager-factory] options.user and options.key are required'); }); }); });