@@ -31,6 +31,44 @@ describe('beforeRender', function () {
31
31
} ) ;
32
32
33
33
describe ( 'called before a new view is rendered' , function ( ) {
34
+
35
+ it ( 'in year view $dates after dependent date are not selectable' , function ( ) {
36
+
37
+ $rootScope . date = moment ( '2008-01-01T00:00:00.000' ) . toDate ( ) ;
38
+ $rootScope . otherDateModel = moment ( '2009-01-01T00:00:00.000' ) . toDate ( ) ;
39
+
40
+ $rootScope . beforeRender = function ( dates ) {
41
+ expect ( dates . length ) . toBe ( 12 ) ;
42
+ dates . map ( function ( current ) {
43
+ //make not selectable after the dependent date
44
+ current . selectable = moment ( new Date ( current . utcDateValue ) ) . isBefore ( moment ( $rootScope . otherDateModel ) ) ;
45
+ } ) ;
46
+ } ;
47
+
48
+ spyOn ( $rootScope , 'beforeRender' ) . and . callThrough ( ) ;
49
+
50
+ var element = $compile ( '<datetimepicker data-ng-model=\'date\' data-before-render=\'beforeRender($dates)\' data-datetimepicker-config="{ startView: \'year\', minView: \'year\' }" data-depend-on="otherDateModel"></datetimepicker>' ) ( $rootScope ) ;
51
+ $rootScope . $digest ( ) ;
52
+
53
+ var selectedElement = jQuery ( jQuery ( '.year' , element ) [ 2 ] ) ;
54
+
55
+ expect ( selectedElement . hasClass ( 'disabled' ) ) . toBeFalsy ( ) ;
56
+ selectedElement . trigger ( 'click' ) ;
57
+ expect ( $rootScope . date ) . toEqual ( moment ( '2001-01-01T00:00:00.000' ) . toDate ( ) ) ;
58
+
59
+ $rootScope . otherDateModel = moment ( '2005-01-01T00:00:00.000' ) . toDate ( ) ;
60
+ $rootScope . $apply ( ) ;
61
+
62
+ var disabledElement = jQuery ( jQuery ( '.year' , element ) [ 10 ] ) ;
63
+
64
+ expect ( disabledElement . hasClass ( 'disabled' ) ) . toBeTruthy ( ) ;
65
+ disabledElement . trigger ( 'click' ) ;
66
+ expect ( $rootScope . date ) . toEqual ( moment ( '2001-01-01T00:00:00.000' ) . toDate ( ) ) ;
67
+
68
+ expect ( $rootScope . beforeRender ) . toHaveBeenCalled ( ) ;
69
+
70
+ } ) ;
71
+
34
72
it ( 'in year view $dates parameter contains 12 members' , function ( ) {
35
73
36
74
$rootScope . date = moment ( '2008-01-01T00:00:00.000' ) . toDate ( ) ;
0 commit comments