UNPKG

@webex/webex-core

Version:

Plugin handling for Cisco Webex

94 lines (80 loc) 2.38 kB
/*! * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file. */ import {assert} from '@webex/test-helper-chai'; import sinon from 'sinon'; import WebexCore, {WebexPlugin, registerInternalPlugin} from '@webex/webex-core'; // TODO: fix circular dependency core->metrics->core https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-515520 require('@webex/internal-plugin-metrics'); describe('Webex', () => { describe('#internal', () => { it('grants plugins access to their namepace config', () => { registerInternalPlugin( 'test', WebexPlugin.extend({ namespace: 'test', }), {replace: true} ); const webex = new WebexCore({ config: { test: { reachable: true, }, }, }); assert.isTrue(webex.internal.test.config.reachable); webex.config.test.reachable = false; assert.isFalse(webex.internal.test.config.reachable); }); it('controls ready status', () => { registerInternalPlugin( 'test', WebexPlugin.extend({ namespace: 'test', session: { ready: { default: false, type: 'boolean', }, }, }), {replace: true} ); const webex = new WebexCore({ config: { test: { reachable: true, }, }, }); webex.internal.on('all', (ev) => console.info( 'YYY', ev, webex.credentials.ready, webex.internal.test.ready, webex.internal.ready, webex.ready ) ); const changeSpy = sinon.spy(); webex.on('change:ready', changeSpy); const readySpy = sinon.spy(); webex.on('ready', readySpy); assert.isFalse(webex.internal.test.ready); assert.isFalse(webex.internal.ready); assert.isFalse(webex.ready); return new Promise((resolve) => webex.once('loaded', resolve)).then(() => { assert.isFalse(webex.internal.test.ready); assert.isFalse(webex.internal.ready); assert.isFalse(webex.ready); webex.internal.test.ready = true; assert.isTrue(webex.internal.ready); assert.isTrue(webex.ready); assert.called(changeSpy); assert.called(readySpy); }); }); }); });