Skip to content

Commit

Permalink
Fixed some event props passed to trigger() not making it to the handl…
Browse files Browse the repository at this point in the history
…er in IE11
  • Loading branch information
nbeach committed Nov 19, 2019
1 parent e03487d commit 813bbcd
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 11 deletions.
39 changes: 39 additions & 0 deletions src/dom.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,45 @@ describe("DOM", () => {
expect(subject.event.keyCode).to.equal(55)
})

it("allows providing build in properties for the event (IE Fix)", () => {
@Component({
selector: "parent",
template: `
<input type="text" (${scenario.event})="event = $event">
`,
})
class TestComponent {
public event: any = {}
}
const {subject, subjectElement, fixture} = setupTestModule(TestComponent)

trigger(subjectElement.querySelector("input"), scenario.event, {
detail: 1,
screenX: 2,
screenY: 3,
clientX: 4,
clientY: 5,
ctrlKey: true,
altKey: true,
shiftKey: true,
metaKey: true,
button: 6,
relatedTarget: "related",
})
fixture.detectChanges()

expect(subject.event.detail).to.equal(1)
expect(subject.event.screenX).to.equal(2)
expect(subject.event.screenY).to.equal(3)
expect(subject.event.clientX).to.equal(4)
expect(subject.event.clientY).to.equal(5)
expect(subject.event.ctrlKey).to.equal(true)
expect(subject.event.altKey).to.equal(true)
expect(subject.event.shiftKey).to.equal(true)
expect(subject.event.metaKey).to.equal(true)
expect(subject.event.button).to.equal(6)
})

})

it("trigger() does not cause page reloads when used with submit", () => {
Expand Down
22 changes: 11 additions & 11 deletions src/dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,17 @@ export function trigger(element: Node | null, eventType: string, eventProperties
true,
true,
window,
0,
0,
0,
0,
0,
false,
false,
false,
false,
0,
null)
eventProperties.detail || 0,
eventProperties.screenX || 0,
eventProperties.screenY || 0,
eventProperties.clientX || 0,
eventProperties.clientY || 0,
eventProperties.ctrlKey || false,
eventProperties.altKey || false,
eventProperties.shiftKey || false,
eventProperties.metaKey || false,
eventProperties.button || 0,
eventProperties.relatedTarget || null)

element.dispatchEvent(Object.assign(event, eventProperties))

Expand Down

0 comments on commit 813bbcd

Please sign in to comment.