UNPKG

periodicjs

Version:

Periodic is a rapid enterprise application framework for data driven web and mobile applications.

62 lines (61 loc) 2.28 kB
'use strict'; /*jshint expr: true*/ const path = require('path'); const events = require('events'); const chai = require('chai'); const expect = require('chai').expect; const sinon = require('sinon'); let periodicProxyHandler = require('../../lib/periodicProxyHandler'); describe('Periodic Class ProxyHandler', function() { it('should be a proxy handler', () => { expect(periodicProxyHandler).to.be.a('function'); }); it('should return a proxy handler object', () => { expect(periodicProxyHandler()).to.be.a('object'); }); it('should trap get property access', () => { let spy = sinon.spy(); let testProxy = new Proxy(spy, periodicProxyHandler); testProxy.someprop = '1234'; testProxy.someprop = testProxy.someprop.toString(); expect(periodicProxyHandler().get).to.be.a('function'); expect(testProxy.someprop).to.eql(spy.someprop); expect(periodicProxyHandler().get(spy, 'someprop')).to.eql(spy.someprop); }); it('should alias the configuraiton core data', () => { const testPeriodicInstance = { datas: new Map(), }; const dummyConfigDBAdapter = {}; testPeriodicInstance.datas.set('configuration', dummyConfigDBAdapter); expect(periodicProxyHandler().get(testPeriodicInstance, 'configuration')).to.eql(dummyConfigDBAdapter); }); it('should alias the standard db', () => { const testPeriodicInstance = { dbs: new Map(), }; const dummyConfigDBAdapter = {}; testPeriodicInstance.dbs.set('standard', dummyConfigDBAdapter); expect(periodicProxyHandler().get(testPeriodicInstance, 'db')).to.eql(dummyConfigDBAdapter); }); it('should alias the process runtime environment', () => { const testPeriodicInstance = { config: { process: { runtime: 'testenv', }, }, }; expect(periodicProxyHandler().get(testPeriodicInstance, 'environment')).to.eql('testenv'); }); it('should alias the current container settings', () => { const testPeriodicInstance = { settings: { container: { name: 'testcontainer', }, }, }; expect(periodicProxyHandler().get(testPeriodicInstance, 'container').name).to.eql('testcontainer'); }); });