model.the_date = ' ';
$rootScope.$digest();
+ $timeout.flush();
expect($rootScope.myForm.$valid).toBe(false);
expect(element.find('.radio-now').prop('checked')).toBe(false);
expect(element.find('.radio-at').prop('checked')).toBe(true);
model.the_date = '2014-01-01';
$rootScope.$digest();
+ $timeout.flush();
expect($rootScope.myForm.$valid).toBe(false);
expect(element.find('.radio-now').prop('checked')).toBe(false);
expect(element.find('.radio-at').prop('checked')).toBe(true);
model.the_date = '02:03:00';
$rootScope.$digest();
+ $timeout.flush();
expect($rootScope.myForm.$valid).toBe(false);
expect(element.find('.radio-now').prop('checked')).toBe(false);
expect(element.find('.radio-at').prop('checked')).toBe(true);
var datenow = [year, month, day].join('-');
var time = [hours, minutes, "00"].join(':');
var currentDate = datenow + ' ' + time;
- var ndate = new Date(datenow);
+ // Using datenow in the constructor here converts to local time. If not
+ // running on GMT (or east) then comparison to toDateString below fails.
+ // Also use month-1 because...javascript.
+ var ndate = new Date(year, month-1, day, 0, 0, 0);
model.the_date = currentDate;
+ $timeout.flush();
$rootScope.$digest();
expect($rootScope.myForm.$valid).toBe(true);
expect(element.find('.radio-now').prop('checked')).toBe(false);
element.find('.radio-now').click().trigger('click').trigger('change');
element.find('.crm-form-date').datepicker('setDate', $.datepicker.parseDate('yy-mm-dd', '2014-01-03')).trigger('change');
+ $timeout.flush();
$rootScope.$digest();
expect(model.the_date).toBe('2014-01-03');
expect($rootScope.myForm.$valid).toBe(false);
expect(element.find('.radio-at').prop('checked')).toBe(true);
element.find('.crm-form-date').datepicker('setDate', '').trigger('change');
+ $timeout.flush();
$rootScope.$digest();
expect(model.the_date).toBe('04:05:00');
expect($rootScope.myForm.$valid).toBe(false);
expect(element.find('.radio-at').prop('checked')).toBe(true);
element.find('.radio-now').click().trigger('click').trigger('change');
+ $timeout.flush();
$rootScope.$digest();
expect(model.the_date).toBe(null);
expect($rootScope.myForm.$valid).toBe(true);