Skip to content

Commit

Permalink
Add support for data-turbo-action in link_to, add test
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrej-zadnik committed Jul 19, 2022
1 parent 975054b commit 63546ad
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/observers/form_link_interceptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ export class FormLinkInterceptor implements LinkInterceptorDelegate {
const turboFrame = link.getAttribute("data-turbo-frame")
if (turboFrame) form.setAttribute("data-turbo-frame", turboFrame)

const turboAction = link.getAttribute("data-turbo-action")
if (turboAction) form.setAttribute("data-turbo-action", turboAction)

const turboConfirm = link.getAttribute("data-turbo-confirm")
if (turboConfirm) form.setAttribute("data-turbo-confirm", turboConfirm)

Expand Down
1 change: 1 addition & 0 deletions src/tests/fixtures/navigation.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ <h1>Navigation</h1>
<p><a id="same-origin-unannotated-link-search-params" href="/src/tests/fixtures/one.html?key=value">Same-origin unannotated link ?key=value</a></p>
<p><form id="same-origin-unannotated-form" method="get" action="/src/tests/fixtures/one.html"><button>Same-origin unannotated form</button></form></p>
<p><a id="same-origin-replace-link" href="/src/tests/fixtures/one.html" data-turbo-action="replace">Same-origin data-turbo-action=replace link</a></p>
<p><a id="same-origin-replace-post-link" href="/__turbo/redirect" data-turbo-method="post" data-turbo-action="replace">Same-origin data-turbo-action=replace link with post method</a></p>
<p><form id="same-origin-replace-form-get" action="/src/tests/fixtures/one.html" data-turbo-action="replace"><button>Same-origin data-turbo-action=replace form</button></form></p>
<p><form id="same-origin-replace-form-submitter-get" action="/src/tests/fixtures/one.html"><button data-turbo-action="replace">Same-origin data-turbo-action=replace form</button></form></p>
<form id="same-origin-replace-form-post" method="post" action="/__turbo/redirect" data-turbo-action="replace">
Expand Down
8 changes: 8 additions & 0 deletions src/tests/functional/navigation_tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,14 @@ test("test following a POST form clears cache", async ({ page }) => {
assert.notOk(await hasSelector(page, "some-cached-element"))
})

test("test following a same-origin POST link with data-turbo-action=replace", async ({ page }) => {
page.click("#same-origin-replace-post-link")
await nextBody(page)

assert.equal(pathname(page.url()), "/src/tests/fixtures/one.html")
assert.equal(await visitAction(page), "replace")
})

test("test following a same-origin data-turbo=false link", async ({ page }) => {
page.click("#same-origin-false-link")
await nextBody(page)
Expand Down

0 comments on commit 63546ad

Please sign in to comment.