describe('date', function() { beforeEach(function () { $([ '
', '
', '
', '', '
', '
' ].join('\n')).appendTo('body'); $('#dateForm').bootstrapValidator(); this.bv = $('#dateForm').data('bootstrapValidator'); this.$date = this.bv.getFieldElements('date'); }); afterEach(function () { $('#dateForm').bootstrapValidator('destroy').remove(); }); it('YYYY/MM/DD', function() { this.bv.updateOption('date', 'date', 'format', 'YYYY/MM/DD'); this.$date.val('2000/01/30'); this.bv.validate(); expect(this.bv.isValid()).toBeTruthy(); // Invalid year this.bv.resetForm(); this.$date.val('100/10/20'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); // Invalid month this.bv.resetForm(); this.$date.val('2000/00/10'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); this.bv.resetForm(); this.$date.val('2000/15/10'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); // Invalid day this.bv.resetForm(); this.$date.val('2000/03/00'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); this.bv.resetForm(); this.$date.val('2000/10/32'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); // Consist invalid characters // #310 this.bv.resetForm(); this.$date.val('aaaa/'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); this.bv.resetForm(); this.$date.val('2004df/1dd1/5ffg'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); }); it('number of days in February', function() { this.bv.updateOption('date', 'date', 'format', 'YYYY/MM/DD'); this.$date.val('2000/02/28'); this.bv.validate(); expect(this.bv.isValid()).toBeTruthy(); this.bv.resetForm(); this.$date.val('2000/02/29'); this.bv.validate(); expect(this.bv.isValid()).toBeTruthy(); this.bv.resetForm(); this.$date.val('2001/02/29'); this.bv.validate(); expect(this.bv.isValid()).toEqual(false); }); });