Hi folks,
In my test code I use sinon to spy on my components methods and events. It has being working great with all components (forms, buttons, etc) but when I try to spy on controllers method, the controller always calls the real method and never the spy, even thou I can confirm that the real method was replaced by the spy.
Any idea how this is possible?
Below we have a pseudo-code
Code:
controller.js
Ext.define('myapp.controller.Main', {
extend: 'Ext.app.Controller',
requires:[
'myapp.view.Account.AccountForm'
],
config: {
refs: {
accountForm: {
selector: 'account-form',
xtype: 'account-form',
autoCreate: true
}
},
control: {
'account-form': {
save: 'onAccountSave'
}
}
},
onAccountSave: function(form, user){
console.log('real onAccountSave: ', user);
});
},
});
Code:
test/controller-spec.js
var main = MyApp.app.getController('MyApp.controller.Main');
var account_form = main.getAccountForm();
var spy = sinon.spy(main, 'onAccountSave');
account_form.fireEvent('save', account_form, {});
spy.should.have.been.called;