Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to test if a string DON'T match using protractor

I'm migrating my karma-ng-scenario tests suite to protractor. I would like to do something like

// karma-ng-scenario
expect(element('legend').text()).not().toBe("LOGIN_CONNECT");

in the protractor way. But it seems there isn't a not() function.

I'm using angular-translate to bind the LONGIN_CONNECT string into multiple languages and I want to test if the string is translated.

More globally, is there a a way test if something is different ? ... don't have a class, don't exists on the page, is not selected, ...

like image 954
Sylvain Avatar asked Feb 06 '14 09:02

Sylvain


2 Answers

It is definitely worth looking at the API docs. I have these open pretty much all the time. There are lots of Web Driver functions you can use like isEnabled(), isDisplayed(), isSelected() etc. Protractor uses Jasmine syntax so you can use '.toBe(false)' to assert things are false. To check for classes, you can do something like:

expect(myElement.getAttribute('class')).toContain('my-class-name');

To compare strings and assert that they do NOT match you could use .not. Jasmine docs say:

Every matcher's criteria can be inverted by prepending .not:

expect(x).not.toEqual(y); compares objects or primitives x and y and passes if they are not equivalent

like image 96
preeve Avatar answered Oct 14 '22 00:10

preeve


You can use something like:

expect(model.getText()).not.toContain('abcdef');

There is a .not property nowadays.

like image 30
Mark Rogers Avatar answered Oct 14 '22 01:10

Mark Rogers