angularjs - Test comparison doesn't work as expected -


1) have strange mistake in protractor code. , don't understand may reason of it.

it('should filtering interval correctly', function () {     filter_field.click();     var filter_field_text = filter_field.element(by.css('input'));      var exist_value1 = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).gettext().then(function (value) {         var floatvalue = parsefloat(value);         return (floatvalue);     });     var exist_value2 = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).gettext().then(function (value) {         var floatvalue = parsefloat(value);         return math.round(floatvalue) + 1;     });     filter_field_text.sendkeys(exist_value1);     filter_field_text.sendkeys('-');     filter_field_text.sendkeys(exist_value2);     browser.sleep(3000);     var filtered_values = element.all(by.xpath('//tr/td[@data-column-index="5"]/div'));     filtered_values.each(function (element, index) {         var current_value = element.gettext().then(function (value) {             var floatvalue = parsefloat(value);             return (floatvalue);         });         expect(exist_value1 <= current_value).tobe(true);     });     if (true) console.log("test done!"); }); 

i have wrong result: 'expected false true' although, absolutely similar code working fine:

it('should filtering one-sided < interval correctly', function () {     filter_field.click();     var filter_field_text = filter_field.element(by.css('input'));     var exist_value = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).gettext().then(function (value) {         var floatvalue = parsefloat(value);         return (floatvalue);     });     filter_field_text.sendkeys("<");     filter_field_text.sendkeys(exist_value);     browser.sleep(3000);     var filtered_values = element.all(by.xpath('//tr/td[@data-column-index="5"]/div'));     filtered_values.each(function (element, index) {         var current_value = element.gettext().then(function (value) {             var floatvalue = parsefloat(value);             return (floatvalue);         });         expect(exist_value <= current_value).tobe(true);     });     if (true) console.log("test done!"); }); 

2) have question complex expectations. can like:

expect(exist_value1 >= current_value & exist_value2 <= current_value).tobe(true); 

in tests isn't work.

can print these values before expect statement? float value might different if getting derived through calculation. use parsefloat(yourstring).tofixed(2) float value till 2 decimal places.


Comments