lessThan.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. function lessThanCompare() {
  2. var compareTo = $('#lessThanForm').find('[name="maxAge"]').val();
  3. $('#msg').html('lessThanCompare() called; compare to ' + compareTo);
  4. return compareTo;
  5. };
  6. TestSuite = $.extend({}, TestSuite, {
  7. lessThan: {
  8. compareTo: function(value, validator, $field) {
  9. var compareTo = $('#lessThanForm').find('[name="maxAge"]').val();
  10. $('#msg').html('TestSuite.lessThan.compareTo() called; compare to ' + compareTo);
  11. return compareTo;
  12. }
  13. }
  14. });
  15. describe('lessThan', function() {
  16. beforeEach(function() {
  17. $([
  18. '<form class="form-horizontal" id="lessThanForm">',
  19. '<div id="msg"></div>',
  20. '<div class="form-group">',
  21. '<input type="text" name="maxAge" />',
  22. '</div>',
  23. '<div class="form-group">',
  24. '<input type="text" name="age" data-bv-lessthan data-bv-lessthan-value="100" />',
  25. '</div>',
  26. '</form>'
  27. ].join('\n')).appendTo('body');
  28. $('#lessThanForm').bootstrapValidator();
  29. this.bv = $('#lessThanForm').data('bootstrapValidator');
  30. this.$maxAge = this.bv.getFieldElements('maxAge');
  31. this.$age = this.bv.getFieldElements('age');
  32. });
  33. afterEach(function() {
  34. $('#lessThanForm').bootstrapValidator('destroy').remove();
  35. });
  36. it('not a number', function() {
  37. this.$age.val('20abc');
  38. this.bv.validate();
  39. expect(this.bv.isValid()).toEqual(false);
  40. });
  41. it('compare to value', function() {
  42. this.$age.val(120);
  43. this.bv.validate();
  44. expect(this.bv.isValid()).toEqual(false);
  45. this.bv.resetForm();
  46. this.$age.val(30);
  47. this.bv.validate();
  48. expect(this.bv.isValid()).toBeTruthy();
  49. });
  50. it('compare to other field', function() {
  51. this.$age.attr('data-bv-lessthan-value', 'maxAge');
  52. this.bv.destroy();
  53. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  54. this.$maxAge.val(40);
  55. this.$age.val(20);
  56. this.bv.validate();
  57. expect(this.bv.isValid()).toBeTruthy();
  58. this.bv.resetForm();
  59. this.$maxAge.val(20);
  60. this.$age.val(30);
  61. this.bv.validate();
  62. expect(this.bv.isValid()).toEqual(false);
  63. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  64. });
  65. it('compare to return value of a function', function() {
  66. this.$age.attr('data-bv-lessthan-value', 'lessThanCompare');
  67. this.bv.destroy();
  68. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  69. this.$maxAge.val(50);
  70. this.$age.val(60);
  71. this.bv.validate();
  72. expect($('#msg').html()).toEqual('lessThanCompare() called; compare to 50');
  73. expect(this.bv.isValid()).toEqual(false);
  74. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  75. this.bv.resetForm();
  76. this.$maxAge.val(60);
  77. this.$age.val(30);
  78. this.bv.validate();
  79. expect($('#msg').html()).toEqual('lessThanCompare() called; compare to 60');
  80. expect(this.bv.isValid()).toBeTruthy();
  81. });
  82. it('compare to return value of a namespace function', function() {
  83. this.$age.attr('data-bv-lessthan-value', 'TestSuite.lessThan.compareTo');
  84. this.bv.destroy();
  85. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  86. this.$maxAge.val(50);
  87. this.$age.val(60);
  88. this.bv.validate();
  89. expect($('#msg').html()).toEqual('TestSuite.lessThan.compareTo() called; compare to 50');
  90. expect(this.bv.isValid()).toEqual(false);
  91. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  92. this.bv.resetForm();
  93. this.$maxAge.val(60);
  94. this.$age.val(30);
  95. this.bv.validate();
  96. expect($('#msg').html()).toEqual('TestSuite.lessThan.compareTo() called; compare to 60');
  97. expect(this.bv.isValid()).toBeTruthy();
  98. });
  99. });