11describe ( 'block-ui-directive' , function ( ) {
22
3- var $ = angular . element , $attrs = { } , $compile , $scope , blockUI , $timeout , config , configCopy , preLinkFn , compileFn ;
3+ var $ = angular . element , $attrs = {
4+ $observe : function ( key , cb ) {
5+ $scope . $watch ( function ( ) {
6+ return $attrs [ key ] ;
7+ } , function ( value ) {
8+ cb ( value ) ;
9+ } ) ;
10+
11+ }
12+ } , $compile , $scope , blockUI , $timeout , config , configCopy , preLinkFn , postLinkFn , compileFn ;
413
514 beforeEach ( function ( ) {
615 module ( 'blockUI' ) ;
716
8- inject ( function ( _blockUI_ , _$timeout_ , _$rootScope_ , _$compile_ , blockUIConfig , blockUiPreLinkFn , blockUiCompileFn ) {
17+ inject ( function ( _blockUI_ , _$timeout_ , _$rootScope_ , _$compile_ , blockUIConfig , blockUiPreLinkFn , /*blockUiPostLinkFn,*/ blockUiCompileFn ) {
918
1019 blockUI = _blockUI_ ;
1120 $timeout = _$timeout_ ;
1221 $compile = _$compile_ ;
1322 $scope = _$rootScope_ . $new ( ) ;
1423 config = blockUIConfig ;
1524 preLinkFn = blockUiPreLinkFn ;
25+ // postLinkFn = blockUiPostLinkFn;
1626 compileFn = blockUiCompileFn ;
1727
1828 } ) ;
@@ -85,8 +95,6 @@ describe('block-ui-directive', function() {
8595
8696 var expectedId = '_' + $scope . $id ;
8797
88- var $attrs = { } ;
89-
9098 var $element = $ ( '<div></div>' ) ;
9199
92100 preLinkFn ( $scope , $element , $attrs ) ;
@@ -158,8 +166,9 @@ describe('block-ui-directive', function() {
158166 expect ( instance . _refs ) . toBe ( 0 ) ;
159167
160168 var $element = $ ( '<div></div>' ) ;
169+ $attrs . blockUi = instanceName ;
161170
162- preLinkFn ( $scope , $element , { blockUi : instanceName } ) ;
171+ preLinkFn ( $scope , $element , $attrs ) ;
163172
164173 expect ( instance . _refs ) . toBe ( 1 ) ;
165174
@@ -168,8 +177,9 @@ describe('block-ui-directive', function() {
168177 it ( 'should release the instance when the scope is destroyed' , function ( ) {
169178
170179 var $element = $ ( '<div></div>' ) ;
180+ $attrs . blockUi = instanceName ;
171181
172- preLinkFn ( $scope , $element , { blockUi : instanceName } ) ;
182+ preLinkFn ( $scope , $element , $attrs ) ;
173183
174184 spyOn ( instance , 'release' ) . andCallThrough ( ) ;
175185 spyOn ( blockUI . instances , '_destroy' ) ;
@@ -191,7 +201,10 @@ describe('block-ui-directive', function() {
191201 var $element = $ ( '<div></div>' ) ;
192202 var pattern = '^\/api\/quote($|\/).*' ;
193203
194- preLinkFn ( $scope , $element , { blockUi : 'myInstance' , blockUiPattern : '/' + pattern + '/' } ) ;
204+ $attrs . blockUi = 'myInstance' ;
205+ $attrs . blockUiPattern = '/' + pattern + '/' ;
206+
207+ preLinkFn ( $scope , $element , $attrs ) ;
195208
196209 var instance = blockUI . instances . myInstance ;
197210
@@ -207,7 +220,9 @@ describe('block-ui-directive', function() {
207220
208221 var blockInstance = blockUI . instances . get ( 'myInstance' ) ;
209222 var $element = $ ( '<div></div>' ) ;
210- preLinkFn ( $scope , $element , { blockUi : 'myInstance' } ) ;
223+ $attrs . blockUi = 'myInstance' ;
224+
225+ preLinkFn ( $scope , $element , $attrs ) ;
211226
212227 blockInstance . start ( ) ;
213228 $timeout . flush ( ) ; // skip the delay of the block
@@ -222,6 +237,97 @@ describe('block-ui-directive', function() {
222237 } ) ;
223238 } ) ;
224239
225- } ) ; // link
240+ describe ( 'block-ui-message-class' , function ( ) {
241+
242+ it ( 'should expose the block-ui-message-class attribute value on the scope' , function ( ) {
243+
244+ var $element = $ ( '<div></div>' ) ;
245+ $attrs . blockUiMessageClass = 'my-class' ;
246+
247+ preLinkFn ( $scope , $element , $attrs ) ;
248+ $scope . $digest ( ) ;
249+
250+ expect ( $scope . $_blockUiMessageClass ) . toBe ( $attrs . blockUiMessageClass ) ;
251+
252+ } ) ;
253+
254+ it ( 'should observe the block-ui-message-class attribute value' , function ( ) {
255+
256+ var $element = $ ( '<div></div>' ) ;
257+
258+ preLinkFn ( $scope , $element , $attrs ) ;
259+ $scope . $digest ( ) ;
260+
261+ $attrs . blockUiMessageClass = 'my-class' ;
262+ $scope . $digest ( ) ;
263+
264+ expect ( $scope . $_blockUiMessageClass ) . toBe ( $attrs . blockUiMessageClass ) ;
265+
266+ } ) ;
267+
268+ } ) ;
226269
270+ } ) ; // pre-link
271+
272+ // describe('post-link', function() {
273+ //
274+ // describe('block-ui-message-class', function() {
275+ //
276+ // it('should add css classes to the .block-ui-message element', function() {
277+ //
278+ // // Arrange
279+ //
280+ // // <div block-ui>
281+ // // <div class="block-ui-message"></div>
282+ // // </div>
283+ //
284+ // var messageClass = 'my-message-class';
285+ // var $blockUi = $('<div block-ui></div>');
286+ // var $message = $('<div class="block-ui-message"></div>');
287+ //
288+ // $blockUi.append($message);
289+ //
290+ // $attrs.blockUiMessageClass = messageClass;
291+ //
292+ // // Act
293+ //
294+ // postLinkFn($scope, $blockUi, $attrs);
295+ // $scope.$digest();
296+ //
297+ // // Assert
298+ //
299+ // expect($message.hasClass(messageClass)).toBe(true);
300+ //
301+ // });
302+ //
303+ // it('should add css classes to the correct .block-ui-message element', function() {
304+ //
305+ // // Arrange
306+ //
307+ // // <div block-ui>
308+ // // <div class="block-ui-message"></div>
309+ // // </div>
310+ //
311+ // var messageClass = 'my-message-class';
312+ // var $blockUi = $('<div block-ui></div>');
313+ // var $message = $('<div class="block-ui-message"></div>');
314+ //
315+ // $blockUi.append($message);
316+ //
317+ // $attrs.blockUiMessageClass = messageClass;
318+ //
319+ // // Act
320+ //
321+ // postLinkFn($scope, $blockUi, $attrs);
322+ // $scope.$digest();
323+ //
324+ // // Assert
325+ //
326+ // expect($message.hasClass(messageClass)).toBe(true);
327+ //
328+ // });
329+ // });
330+ //
331+ //
332+ // });
227333} ) ;
0 commit comments