Skip to content

Commit

Permalink
Attempt to add test
Browse files Browse the repository at this point in the history
  • Loading branch information
terracatta committed Sep 24, 2021
1 parent fda7aef commit 7774fe9
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/tests/fixtures/drive_disabled.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@
<title>Drive (Disabled by Default)</title>
<script src="/dist/turbo.es2017-umd.js" data-turbo-track="reload"></script>
<script src="/src/tests/fixtures/test.js"></script>
<script type="module">
addEventListener("click", event => {
if (event.target.id == "requestSubmit") {
event.preventDefault()
const form = event.target.closest('form')
if(typeof form.requestSubmit === "function"){
form.requestSubmit()
} else {
form.submit()
}
}
})
</script>
<script>
Turbo.session.drive = false
</script>
Expand All @@ -19,5 +32,11 @@ <h1>Drive (Disabled by Default)</h1>
<div>
<a id="drive_disabled" href="/src/tests/fixtures/drive_disabled.html">Drive disabled link</a>
</div>

<form action="/__turbo/redirect" method="post" id="no_submitter_drive_enabled" data-turbo="true">
<input type="hidden" name="path" value="/src/tests/fixtures/form.html">
<input type="hidden" name="greeting" value="Hello from a redirect">
<a href="#" id="requestSubmit">Drive enabled submit via JS</a>
</form>
</body>
</html>
16 changes: 16 additions & 0 deletions src/tests/functional/drive_disabled_tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,22 @@ export class DriveDisabledTests extends TurboDriveTestCase {
this.assert.equal(await this.pathname, this.path)
this.assert.equal(await this.visitAction, "advance")
}

async "test drive disabled by default; submit form inside data-turbo='true'"() {
await this.remote.execute(() => {
addEventListener("turbo:submit-start", () => document.documentElement.setAttribute("data-form-submitted", ""), { once: true })
})
this.clickSelector("#no_submitter_drive_enabled a#requestSubmit")
await this.nextBody
this.assert.ok(await this.formSubmitted)
this.assert.equal(await this.pathname, "/src/tests/fixtures/form.html")
this.assert.equal(await this.visitAction, "advance")
this.assert.equal(await this.getSearchParam("greeting"), "Hello from a redirect")
}

get formSubmitted(): Promise<boolean> {
return this.hasSelector("html[data-form-submitted]")
}
}


Expand Down

0 comments on commit 7774fe9

Please sign in to comment.