Passer un événement DOM mock à un gestionnaire de directives sans jQuery

J'ai une question très simple directive dont le but est simplement d'annuler la dragstart événement:

link: function(scope, element) {
  element.on('dragstart', function(e) {
    e.preventDefault();
  })
}

Comment puis-je tester cela dans un Jasmin d'essai? J'ai le test suivant qui tente d'espionner un objet d'Événement, et de le transmettre au gestionnaire:

var mockEvent; 

beforeEach(function() {
  mockEvent = new Event('dragstart');
  spyOn(mockEvent,'preventDefault');
});

it('should call preventDefault', function () {
  element.triggerHandler('dragstart', mockEvent);
  expect(mockEvent.preventDefault).toHaveBeenCalled();
});

Mais le test échoue. Vous pouvez voir à ce Plunker.. Comment puis-je tester ce (/refactoriser la directive, afin de rendre testable)?

Edit: Idéalement sans jQuery.
Edit: changé tags

source d'informationauteur Michal Charemza