Jasmine: How to test @HostListner?2019 Community Moderator ElectionHow can I select an element in a component template?How to write unit testing for Angular 2 / TypeScript for private methods with JasmineHow to import jasmine test functions in Angular2 rc5Angular2 NgModel not getting value in Jasmine testLifecycle hook of AfterViewInit in Jasmine testHow do I debug a “[object ErrorEvent] thrown” error in my Karma/Jasmine tests?Setting variables Jasmine integrations testTest a branch with Jasmine KarmaTesting branches jasmine angularHow to test HTMLImageElement.onload with jasmine + karma and Angular
Is "history" a male-biased word ("his+story")?
Why don't MCU characters ever seem to have language issues?
Does "variables should live in the smallest scope as possible" include the case "variables should not exist if possible"?
Is there an equal sign with wider gap?
Latest web browser compatible with Windows 98
Should I tell my boss the work he did was worthless
Figure-8 landings on perpendicular runways
Why is there a voltage between the mains ground and my radiator?
Is having access to past exams cheating and, if yes, could it be proven just by a good grade?
Should QA ask requirements to developers?
In the late 1940’s to early 1950’s what technology was available that could melt a LOT of ice?
They call me Inspector Morse
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
Accountant/ lawyer will not return my call
Word for a person who has no opinion about whether god exists
2×2×2 rubik's cube corner is twisted!
How could our ancestors have domesticated a solitary predator?
How strictly should I take "Candidates must be local"?
What is the chance of making a successful appeal to dismissal decision from a PhD program after failing the qualifying exam in the 2nd attempt?
What to do when during a meeting client people start to fight (even physically) with each others?
What is the likely impact of grounding an entire aircraft series?
How do you like my writing?
Is there any way to damage Intellect Devourer(s) when already within a creature's skull?
Are babies of evil humanoid species inherently evil?
Jasmine: How to test @HostListner?
2019 Community Moderator ElectionHow can I select an element in a component template?How to write unit testing for Angular 2 / TypeScript for private methods with JasmineHow to import jasmine test functions in Angular2 rc5Angular2 NgModel not getting value in Jasmine testLifecycle hook of AfterViewInit in Jasmine testHow do I debug a “[object ErrorEvent] thrown” error in my Karma/Jasmine tests?Setting variables Jasmine integrations testTest a branch with Jasmine KarmaTesting branches jasmine angularHow to test HTMLImageElement.onload with jasmine + karma and Angular
I've been writing unit-test cases for my angular application. I have created a @Directive
which listens to dragstart
event using @HostListner
.
In my test case I'm expecting the event handler function to be called, but it seems that the handler is called(console.log() works), but the jasmine toHaveBeenCalledTimes()
is throwing error.
I couldn't find any possible cause for the error
This is the directive
@Directive(
selector: '[directiveDraggable]'
)
export class DraggableDirective
constructor()
@HostBinding('draggable')
get draggable()
return true;
@HostListener('dragstart', ['$event'])
onDragStart(event)
console.log(event);
event.dataTransfer.setData('dropableId', event.target.id);
and the spec file
@Component(
template: `<div class="draggable-div" style="width:150px;height:100px;background-color:yellow;" directiveDraggable></div>`
)
class TestDraggableComponent
describe('DraggableDirective', () =>
const dragstartEvent =
'bubbles': true,
'cancelable':true,
'composed': true,
'target':
'id': 'my-draggable-div-id'
,
'dataTransfer':
setData : (key, val) =>
console.log("setData called.!");
;
let directive: DraggableDirective;
let fixture: ComponentFixture<TestDraggableComponent>;
let draggableElement: DebugElement;
beforeEach(() =>
TestBed.configureTestingModule(
declarations: [TestDraggableComponent, DraggableDirective]
);
directive = new DraggableDirective()
fixture = TestBed.createComponent(TestDraggableComponent);
draggableElement = fixture.debugElement.query(By.css('div'));
);
it('HostListner to listen to "dragstart" event', async() =>
spyOn(directive, 'onDragStart').and.callThrough();
expect(directive.onDragStart).toBeDefined();
expect(directive.onDragStart).toHaveBeenCalledTimes(0);
const customEvent = new Event('dragstart', dragstartEvent);
draggableElement.triggerEventHandler('dragstart', dragstartEvent);
fixture.detectChanges();
expect(directive.onDragStart).toHaveBeenCalledTimes(1);
);
);
I'm getting the following error..
P.S.
console.log(setData called.!)
is logged butexpect()
doesn't seem to work.!
Thank you.
angular typescript karma-jasmine
add a comment |
I've been writing unit-test cases for my angular application. I have created a @Directive
which listens to dragstart
event using @HostListner
.
In my test case I'm expecting the event handler function to be called, but it seems that the handler is called(console.log() works), but the jasmine toHaveBeenCalledTimes()
is throwing error.
I couldn't find any possible cause for the error
This is the directive
@Directive(
selector: '[directiveDraggable]'
)
export class DraggableDirective
constructor()
@HostBinding('draggable')
get draggable()
return true;
@HostListener('dragstart', ['$event'])
onDragStart(event)
console.log(event);
event.dataTransfer.setData('dropableId', event.target.id);
and the spec file
@Component(
template: `<div class="draggable-div" style="width:150px;height:100px;background-color:yellow;" directiveDraggable></div>`
)
class TestDraggableComponent
describe('DraggableDirective', () =>
const dragstartEvent =
'bubbles': true,
'cancelable':true,
'composed': true,
'target':
'id': 'my-draggable-div-id'
,
'dataTransfer':
setData : (key, val) =>
console.log("setData called.!");
;
let directive: DraggableDirective;
let fixture: ComponentFixture<TestDraggableComponent>;
let draggableElement: DebugElement;
beforeEach(() =>
TestBed.configureTestingModule(
declarations: [TestDraggableComponent, DraggableDirective]
);
directive = new DraggableDirective()
fixture = TestBed.createComponent(TestDraggableComponent);
draggableElement = fixture.debugElement.query(By.css('div'));
);
it('HostListner to listen to "dragstart" event', async() =>
spyOn(directive, 'onDragStart').and.callThrough();
expect(directive.onDragStart).toBeDefined();
expect(directive.onDragStart).toHaveBeenCalledTimes(0);
const customEvent = new Event('dragstart', dragstartEvent);
draggableElement.triggerEventHandler('dragstart', dragstartEvent);
fixture.detectChanges();
expect(directive.onDragStart).toHaveBeenCalledTimes(1);
);
);
I'm getting the following error..
P.S.
console.log(setData called.!)
is logged butexpect()
doesn't seem to work.!
Thank you.
angular typescript karma-jasmine
add a comment |
I've been writing unit-test cases for my angular application. I have created a @Directive
which listens to dragstart
event using @HostListner
.
In my test case I'm expecting the event handler function to be called, but it seems that the handler is called(console.log() works), but the jasmine toHaveBeenCalledTimes()
is throwing error.
I couldn't find any possible cause for the error
This is the directive
@Directive(
selector: '[directiveDraggable]'
)
export class DraggableDirective
constructor()
@HostBinding('draggable')
get draggable()
return true;
@HostListener('dragstart', ['$event'])
onDragStart(event)
console.log(event);
event.dataTransfer.setData('dropableId', event.target.id);
and the spec file
@Component(
template: `<div class="draggable-div" style="width:150px;height:100px;background-color:yellow;" directiveDraggable></div>`
)
class TestDraggableComponent
describe('DraggableDirective', () =>
const dragstartEvent =
'bubbles': true,
'cancelable':true,
'composed': true,
'target':
'id': 'my-draggable-div-id'
,
'dataTransfer':
setData : (key, val) =>
console.log("setData called.!");
;
let directive: DraggableDirective;
let fixture: ComponentFixture<TestDraggableComponent>;
let draggableElement: DebugElement;
beforeEach(() =>
TestBed.configureTestingModule(
declarations: [TestDraggableComponent, DraggableDirective]
);
directive = new DraggableDirective()
fixture = TestBed.createComponent(TestDraggableComponent);
draggableElement = fixture.debugElement.query(By.css('div'));
);
it('HostListner to listen to "dragstart" event', async() =>
spyOn(directive, 'onDragStart').and.callThrough();
expect(directive.onDragStart).toBeDefined();
expect(directive.onDragStart).toHaveBeenCalledTimes(0);
const customEvent = new Event('dragstart', dragstartEvent);
draggableElement.triggerEventHandler('dragstart', dragstartEvent);
fixture.detectChanges();
expect(directive.onDragStart).toHaveBeenCalledTimes(1);
);
);
I'm getting the following error..
P.S.
console.log(setData called.!)
is logged butexpect()
doesn't seem to work.!
Thank you.
angular typescript karma-jasmine
I've been writing unit-test cases for my angular application. I have created a @Directive
which listens to dragstart
event using @HostListner
.
In my test case I'm expecting the event handler function to be called, but it seems that the handler is called(console.log() works), but the jasmine toHaveBeenCalledTimes()
is throwing error.
I couldn't find any possible cause for the error
This is the directive
@Directive(
selector: '[directiveDraggable]'
)
export class DraggableDirective
constructor()
@HostBinding('draggable')
get draggable()
return true;
@HostListener('dragstart', ['$event'])
onDragStart(event)
console.log(event);
event.dataTransfer.setData('dropableId', event.target.id);
and the spec file
@Component(
template: `<div class="draggable-div" style="width:150px;height:100px;background-color:yellow;" directiveDraggable></div>`
)
class TestDraggableComponent
describe('DraggableDirective', () =>
const dragstartEvent =
'bubbles': true,
'cancelable':true,
'composed': true,
'target':
'id': 'my-draggable-div-id'
,
'dataTransfer':
setData : (key, val) =>
console.log("setData called.!");
;
let directive: DraggableDirective;
let fixture: ComponentFixture<TestDraggableComponent>;
let draggableElement: DebugElement;
beforeEach(() =>
TestBed.configureTestingModule(
declarations: [TestDraggableComponent, DraggableDirective]
);
directive = new DraggableDirective()
fixture = TestBed.createComponent(TestDraggableComponent);
draggableElement = fixture.debugElement.query(By.css('div'));
);
it('HostListner to listen to "dragstart" event', async() =>
spyOn(directive, 'onDragStart').and.callThrough();
expect(directive.onDragStart).toBeDefined();
expect(directive.onDragStart).toHaveBeenCalledTimes(0);
const customEvent = new Event('dragstart', dragstartEvent);
draggableElement.triggerEventHandler('dragstart', dragstartEvent);
fixture.detectChanges();
expect(directive.onDragStart).toHaveBeenCalledTimes(1);
);
);
I'm getting the following error..
P.S.
console.log(setData called.!)
is logged butexpect()
doesn't seem to work.!
Thank you.
angular typescript karma-jasmine
angular typescript karma-jasmine
edited Mar 7 at 10:10
Kedar Udupa
asked Mar 6 at 13:19
Kedar UdupaKedar Udupa
106113
106113
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55024080%2fjasmine-how-to-test-hostlistner%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55024080%2fjasmine-how-to-test-hostlistner%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown