2323
2424
2525/*jslint vars: true, plusplus: true, devel: true, browser: true, nomen: true, indent: 4, maxerr: 50 */
26- /*global define, describe, it, expect, afterEach, waitsFor, runs, waitsForDone, beforeFirst, afterLast */
26+ /*global $, define, describe, it, expect, afterEach, waitsFor, runs, waitsForDone, beforeFirst, afterLast */
2727
2828define ( function ( require , exports , module ) {
2929 "use strict" ;
@@ -367,6 +367,20 @@ define(function (require, exports, module) {
367367 expect ( $selectedItem . text ( ) . trim ( ) ) . toBe ( name ) ;
368368 }
369369 }
370+
371+ /**
372+ * ProjectManager pauses between renders for performance reasons. For some tests,
373+ * we'll need to wait for the next render.
374+ */
375+ function waitForRenderDebounce ( ) {
376+ runs ( function ( ) {
377+ var d = new $ . Deferred ( ) ;
378+ setTimeout ( function ( ) {
379+ d . resolve ( ) ;
380+ } , ProjectManager . _RENDER_DEBOUNCE_TIME ) ;
381+ waitsForDone ( d . promise ( ) ) ;
382+ } ) ;
383+ }
370384
371385 it ( "should deselect after opening file not rendered in tree" , function ( ) {
372386 var promise ,
@@ -377,12 +391,14 @@ define(function (require, exports, module) {
377391 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : exposedFile } ) ;
378392 waitsForDone ( promise ) ;
379393 } ) ;
394+ waitForRenderDebounce ( ) ;
380395 runs ( function ( ) {
381396 expectSelected ( exposedFile ) ;
382397
383398 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : unexposedFile } ) ;
384399 waitsForDone ( promise ) ;
385400 } ) ;
401+ waitForRenderDebounce ( ) ;
386402 runs ( function ( ) {
387403 expectSelected ( null ) ;
388404 } ) ;
@@ -429,6 +445,7 @@ define(function (require, exports, module) {
429445 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : initialFile } ) ;
430446 waitsForDone ( promise ) ;
431447 } ) ;
448+ waitForRenderDebounce ( ) ;
432449 runs ( function ( ) {
433450 expectSelected ( initialFile ) ;
434451 toggleFolder ( folder , true ) ; // open folder
@@ -437,13 +454,15 @@ define(function (require, exports, module) {
437454 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : fileInFolder } ) ;
438455 waitsForDone ( promise ) ;
439456 } ) ;
457+ waitForRenderDebounce ( ) ;
440458 runs ( function ( ) {
441459 expectSelected ( fileInFolder ) ;
442460 toggleFolder ( folder , false ) ; // close folder
443461 } ) ;
444462 runs ( function ( ) {
445463 toggleFolder ( folder , true ) ; // open folder again
446464 } ) ;
465+ waitForRenderDebounce ( ) ;
447466 runs ( function ( ) {
448467 expectSelected ( fileInFolder ) ;
449468 toggleFolder ( folder , false ) ; // close folder
@@ -460,6 +479,7 @@ define(function (require, exports, module) {
460479 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : initialFile } ) ;
461480 waitsForDone ( promise ) ;
462481 } ) ;
482+ waitForRenderDebounce ( ) ;
463483 runs ( function ( ) {
464484 expectSelected ( initialFile ) ;
465485 toggleFolder ( folder , true ) ; // open folder
@@ -471,10 +491,12 @@ define(function (require, exports, module) {
471491 promise = CommandManager . execute ( Commands . FILE_OPEN , { fullPath : fileInFolder } ) ;
472492 waitsForDone ( promise ) ;
473493 } ) ;
494+ waitForRenderDebounce ( ) ;
474495 runs ( function ( ) {
475496 expectSelected ( null ) ;
476497 toggleFolder ( folder , true ) ; // open folder again
477498 } ) ;
499+ waitForRenderDebounce ( ) ;
478500 runs ( function ( ) {
479501 expectSelected ( fileInFolder ) ;
480502 toggleFolder ( folder , false ) ; // close folder
0 commit comments