Closed ebacka closed 6 years ago
Remove the brackets.
someEl.should.have.attr('disabled')
This way it never finds it
No, you need it in your selector, but remove brackets from the chai-dom
assertion call.
Yeah, I did this before, but without brackets it always says that cannot find this attribute of this element. So I put the bracketc and thought that maybe this was the error.
does this pass?
dom.window.document.getElementById("ref_button").hasAttribute('disabled').should.be.true
Nope. AssertionError: expected false to be true. I think that it doesnt recognizes the changes in the form when it is valid and invalid. I have done almost the same thing in jasmine and it works this way.
Nope
Well now that you have removed chai-dom
out of the picture and your test is still failing, something else is wrong. Good luck on your investigation.
The Element DOM API :)
I still think it is an issue of chai-dom**. The investigation is difficult here without any example of implementing chai-dom.
Hello,
I have this button to test in a file test.html :
<button id="ref_button" type="submit" [disabled]="editForm.form.invalid || isSaving" class="btn btn-primary">
I am using protractor, cucumber, and chai dom to test if this button is disabled when the form data are invalid, so I check its attribute disabled like this:
`const jsdom = require("jsdom"); const { JSDOM } = jsdom; const chai = require('chai'); const expect = chai.expect; const should = chai.should(); chai.use(require('chai-dom'));
//In given when then step definitions I run teh app, login, go to the form and fill the form with valid data .... When('I put a valid name',{timeout: 90 * 1000}, function(callback) {
}); Then('The button Save should be enabled', function() { JSDOM.fromFile("test.html").then(dom => { dom.window.document.getElementById("ref_button").should.not.have.attr("[disabled]");
}); ` Now the test fails because it always finds the attribute disabled, when the button is disabled or not, when the datas are valid or not.
Is this a chai-dom issue, or something I implement the wrong way and maybe it doesnt make take the form status valid or invalid?