Skip to content

Commit

Permalink
Fix invoking actions for events dispatched during connect
Browse files Browse the repository at this point in the history
Fixes #222

Co-Authored-By: Sam Stephenson <sstephenson@gmail.com>
  • Loading branch information
javan and sstephenson committed Aug 6, 2019
1 parent 364ca73 commit 6129975
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
4 changes: 2 additions & 2 deletions packages/@stimulus/core/src/application.ts
Expand Up @@ -26,13 +26,13 @@ export class Application implements ErrorHandler {

async start() {
await domReady()
this.router.start()
this.dispatcher.start()
this.router.start()
}

stop() {
this.router.stop()
this.dispatcher.stop()
this.router.stop()
}

register(identifier: string, controllerConstructor: ControllerConstructor) {
Expand Down
32 changes: 32 additions & 0 deletions packages/@stimulus/core/src/tests/cases/action_timing_tests.ts
@@ -0,0 +1,32 @@
import { Controller } from "../.."
import { ControllerTestCase } from "../controller_test_case"

class ActionTimingController extends Controller {
static targets = [ "button" ]
buttonTarget!: HTMLButtonElement
event?: Event

connect() {
this.buttonTarget.click()
}

record(event: Event) {
this.event = event
}
}

export default class ActionTimingTests extends ControllerTestCase<ActionTimingController> {
controllerConstructor = ActionTimingController
identifier = "c"
fixtureHTML = `
<div data-controller="c">
<button data-target="c.button" data-action="c#record">Log</button>
</div>
`

async "test triggering an action on connect"() {
const { event } = this.controller
this.assert.ok(event)
this.assert.equal(event && event.type, "click")
}
}
4 changes: 2 additions & 2 deletions packages/@stimulus/core/src/tests/log_controller_test_case.ts
Expand Up @@ -5,7 +5,7 @@ export class LogControllerTestCase extends ControllerTestCase<LogController> {
controllerConstructor = LogController

async setup() {
LogController.actionLog = []
this.controllerConstructor.actionLog = []
await super.setup()
}

Expand All @@ -25,7 +25,7 @@ export class LogControllerTestCase extends ControllerTestCase<LogController> {
}

get actionLog(): ActionLogEntry[] {
return LogController.actionLog
return this.controllerConstructor.actionLog
}
}

Expand Down

0 comments on commit 6129975

Please sign in to comment.