UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

59 lines (46 loc) 2.12 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ /** @class Siesta.Test.ExtJS.DataView This is a mixin, with helper methods for testing functionality relating to ExtJS dataviews. This mixin is being consumed by {@link Siesta.Test.ExtJS} */ Role('Siesta.Test.ExtJS.DataView', { requires : [ 'waitFor', 'getExt' ], methods : { /** * Waits for the items of a dataview to render and then calls the supplied callback. * @param {Ext.view.View/String} view An Ext.view.View instance or a ComponentQuery * @param {Function} callback A function to call when the condition has been met. * @param {Object} scope The scope for the callback * @param {Int} timeout The maximum amount of time to wait for the condition to be fulfilled. Defaults to the {@link Siesta.Test.ExtJS#waitForTimeout} value. */ waitForViewRendered : function(view, callback, scope, timeout) { view = this.normalizeComponent(view); var hasItems = view && view.store && view.store.getCount() > 0 var R = Siesta.Resource('Siesta.Test.ExtJS.DataView'); return this.waitFor({ method : function() { return hasItems ? !!view.getNode(0) : view.rendered }, callback : callback, scope : scope, timeout : timeout, assertionName : 'waitForViewRendered', description : ' ' + R.get('view') + ' ' + view.id + ' ' + R.get('toRender') }); }, /** * Utility method which returns the first view element. * * @param {Ext.view.View/String} view An Ext.view.View instance or a ComponentQuery * @return {Ext.Element} The first element of the view */ getFirstItem : function(view) { var Ext = this.getExt(); view = this.normalizeComponent(view); return Ext.get(view.getNode(0)); } } });