UNPKG

pict-application

Version:

Application base class for a pict view-based application

203 lines (178 loc) 7.11 kB
/* Unit tests for Pict View: PictApplication */ // This is temporary, but enables unit tests const libBrowserEnv = require('browser-env') libBrowserEnv(); const Chai = require('chai'); const Expect = Chai.expect; const libPict = require('pict'); const libPictApplication = require(`../source/Pict-Application.js`); const libPictView = require('pict-view'); const libSimpleAsyncProvider = require('../example_applications/simple/PictProvider-Simple-AsyncExercises.js'); const libSimpleAsyncView = require('../example_applications/simple/PictView-Simple-AsyncExercises.js'); suite ( 'Pict Core: PictApplication', () => { setup(() => { }); suite ( 'Basic Tests', () => { test( 'Object Initialization', (fDone) => { let _Pict = new libPict(); let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); Expect(_PictApplication).to.be.an('object'); _PictApplication.initialize(); // Test package anthropology Expect(_PictApplication._PackageFableServiceProvider).to.be.an('object', 'Fable should have a _PackageFableServiceProvider object.'); Expect(_PictApplication._PackageFableServiceProvider.name).equal('fable-serviceproviderbase', 'Fable _PackageFableServiceProvider.package.name should be set.'); Expect(_PictApplication._Package).to.be.an('object', 'Fable should have a _Package object.'); Expect(_PictApplication._Package.name).to.equal('pict-application', 'Fable _Package.package.name should be set.'); return fDone(); } ); test( 'Object Initialization with Carried Over Configuration', (fDone) => { let _Pict = new libPict({PictApplicationConfiguration: {CarriedOverValue: 'Awesome!', AutoRenderMainViewportViewAfterInitialize: false}}); let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); Expect(_PictApplication).to.be.an('object'); _PictApplication.initialize(); // Test package anthropology Expect(_PictApplication._PackageFableServiceProvider).to.be.an('object', 'Fable should have a _PackageFableServiceProvider object.'); Expect(_PictApplication._PackageFableServiceProvider.name).equal('fable-serviceproviderbase', 'Fable _PackageFableServiceProvider.package.name should be set.'); Expect(_PictApplication._Package).to.be.an('object', 'Fable should have a _Package object.'); Expect(_PictApplication._Package.name).to.equal('pict-application', 'Fable _Package.package.name should be set.'); Expect(_PictApplication.options.CarriedOverValue).to.equal('Awesome!', 'CarriedOverValue should be set.'); Expect(_PictApplication.options.AutoRenderMainViewportViewAfterInitialize).to.equal(false, 'AutoRenderMainViewportViewAfterInitialize should be set.'); return fDone(); } ); test( 'Simple View Initialization', (fDone) => { let _Pict = new libPict(); let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); _Pict.addView({}, 'Pict-View', libPictView); _PictApplication.initialize(); return fDone(); } ); test( 'Simple View Initialization with control flow logged out (for wkhtmltopdf etc.)', (fDone) => { let _Pict = new libPict(); _Pict.LogControlFlow = true; let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); _Pict.addView({}, 'Pict-View', libPictView); _PictApplication.initialize(); return fDone(); } ); test( 'Simple View double Initialization', (fDone) => { let _Pict = new libPict(); let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); _Pict.addView({}, 'Pict-View', libPictView); _PictApplication.initialize(); _PictApplication.initialize(); return fDone(); } ); test( 'Async View Initialization', (fDone) => { let _Pict = new libPict(); _Pict.LogNoisiness = 5; let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); _Pict.addView({}, 'Pict-View-Async', libSimpleAsyncView); _PictApplication.initializeAsync( (pError) => { _PictApplication.renderAutoViews(); return fDone(); } ) } ); test( 'Async View Initialization with Priorities', (fDone) => { let _Pict = new libPict(); _Pict.LogNoisiness = 1; let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); for (let i = 0; i < 2; i++) { _Pict.addView(`Pict-View-Async-0${i}`, {}, libSimpleAsyncView); } _Pict.addView('Pict-View', {ViewIdentifier:'Deferred-View', AutoInitializeOrdinal: 1}, libPictView); for (let i = 0; i < 2; i++) { _Pict.addView(`Pict-View-Async-1${i}`, {}, libSimpleAsyncView); } _PictApplication.initializeAsync( (pError) => { return fDone(); } ) } ); test( 'Async View *and* Provider Initialization with Priorities', (fDone) => { let _Pict = new libPict(); _Pict.LogNoisiness = 1; let _PictEnvironment = new libPict.EnvironmentLog(_Pict); let _PictApplication = _Pict.addApplication('Pict-PictApplication', {}, libPictApplication); for (let i = 0; i < 1; i++) { _Pict.addProvider(`Pict-Provider-Async-0-${i}`, {}, libSimpleAsyncProvider); } for (let i = 0; i < 7; i++) { _Pict.addProvider(`Pict-Provider-Async-1-${i}`, {ProviderIdentifier:`Deferred-Provider-${i}`, AutoInitializeOrdinal: 1}, libSimpleAsyncProvider); } for (let i = 0; i < 2; i++) { _Pict.addView(`Pict-View-Async-0-${i}`, {}, libSimpleAsyncView); } _Pict.addView('Pict-View', {ViewIdentifier:'Deferred-View', AutoInitializeOrdinal: 1}, libPictView); for (let i = 0; i < 4; i++) { _Pict.addView(`Pict-View-Async-1-${i}`, {}, libSimpleAsyncView); } _PictApplication.initializeAsync( (pError) => { return _PictApplication.renderAutoViewsAsync(fDone); } ) } ); } ); } );