lessThan.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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('value with coma separator', function() {
  42. this.$age.val('120,2234');
  43. this.bv.validate();
  44. expect(this.bv.isValid()).toEqual(false);
  45. this.bv.resetForm();
  46. this.$age.val('30,2234');
  47. this.bv.validate();
  48. expect(this.bv.isValid()).toBeTruthy();
  49. });
  50. it('compare to value', function() {
  51. this.$age.val(120);
  52. this.bv.validate();
  53. expect(this.bv.isValid()).toEqual(false);
  54. this.bv.resetForm();
  55. this.$age.val(30);
  56. this.bv.validate();
  57. expect(this.bv.isValid()).toBeTruthy();
  58. });
  59. it('compare to other field', function() {
  60. this.$age.attr('data-bv-lessthan-value', 'maxAge');
  61. this.bv.destroy();
  62. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  63. this.$maxAge.val(40);
  64. this.$age.val(20);
  65. this.bv.validate();
  66. expect(this.bv.isValid()).toBeTruthy();
  67. this.bv.resetForm();
  68. this.$maxAge.val(20);
  69. this.$age.val(30);
  70. this.bv.validate();
  71. expect(this.bv.isValid()).toEqual(false);
  72. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  73. });
  74. it('compare to return value of a function', function() {
  75. this.$age.attr('data-bv-lessthan-value', 'lessThanCompare');
  76. this.bv.destroy();
  77. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  78. this.$maxAge.val(50);
  79. this.$age.val(60);
  80. this.bv.validate();
  81. expect($('#msg').html()).toEqual('lessThanCompare() called; compare to 50');
  82. expect(this.bv.isValid()).toEqual(false);
  83. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  84. this.bv.resetForm();
  85. this.$maxAge.val(60);
  86. this.$age.val(30);
  87. this.bv.validate();
  88. expect($('#msg').html()).toEqual('lessThanCompare() called; compare to 60');
  89. expect(this.bv.isValid()).toBeTruthy();
  90. });
  91. it('compare to return value of a namespace function', function() {
  92. this.$age.attr('data-bv-lessthan-value', 'TestSuite.lessThan.compareTo');
  93. this.bv.destroy();
  94. this.bv = $('#lessThanForm').bootstrapValidator().data('bootstrapValidator');
  95. this.$maxAge.val(50);
  96. this.$age.val(60);
  97. this.bv.validate();
  98. expect($('#msg').html()).toEqual('TestSuite.lessThan.compareTo() called; compare to 50');
  99. expect(this.bv.isValid()).toEqual(false);
  100. expect(this.bv.getMessages('age', 'lessThan')[0]).toEqual($.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.lessThan['default'], this.$maxAge.val()));
  101. this.bv.resetForm();
  102. this.$maxAge.val(60);
  103. this.$age.val(30);
  104. this.bv.validate();
  105. expect($('#msg').html()).toEqual('TestSuite.lessThan.compareTo() called; compare to 60');
  106. expect(this.bv.isValid()).toBeTruthy();
  107. });
  108. });