Reputation: 1225
Why does this test not pass?
beforeEach(function(){
loadFixtures('addvehicle.html');
});
it ("should trigger change event on #selectLanguage", function(){
spyOnEvent('#selectLanguage', 'change');
$('#selectLanguage').trigger('change');
expect('change').toHaveBeenTriggeredOn('#selectLanguage');
});
My fixture file looks like this:
<div id="selectTypeWrapper"></div>
<select id="selectLanguage"></select>
I get this error:
Error: Expected event [object Object] to have been triggered on #selectLanguage
Do I have to set a change listener before? (how would this work?)
Upvotes: 1
Views: 215
Reputation: 3155
I don't know why your code does not work, but maybe you could try this:
var changeSpy;
beforeEach(function(){
loadFixtures('addvehicle.html');
changeSpy = jasmine.createSpy('handleChange() spy');
$('#selectLanguage').change(changeSpy);
});
it ("should trigger change event on #selectLanguage", function(){
$('#selectLanguage').change();
expect(changeSpy).toBeDefined();
expect(changeSpy).toHaveBeenCalled();
});
It will test the event indirectly.
Upvotes: 1