Skip to content

Commit 47b5529

Browse files
committed
add tests for hx-headers event acces and load event
1 parent a2d7abf commit 47b5529

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

test/attributes/hx-headers.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,48 @@ describe('hx-headers attribute', function() {
147147
this.server.respond()
148148
div.innerHTML.should.equal('Clicked!')
149149
})
150+
151+
it('using js: with hx-headers has event available', function() {
152+
this.server.respondWith('POST', '/vars', function(xhr) {
153+
var headers = xhr.requestHeaders
154+
headers.i1.should.equal('test')
155+
xhr.respond(200, {}, 'Clicked!')
156+
})
157+
158+
var div = make('<div id="test" hx-post="/vars" hx-headers="js:i1:event.target.id"></div>')
159+
div.click()
160+
this.server.respond()
161+
div.innerHTML.should.equal('Clicked!')
162+
})
163+
164+
it('using js: with hx-headers has event available on load event', function() {
165+
this.server.respondWith('POST', '/vars', function(xhr) {
166+
var headers = xhr.requestHeaders
167+
headers.i1.should.equal('load')
168+
xhr.respond(200, {}, 'Loaded!')
169+
})
170+
171+
var div = make('<div id="test" hx-post="/vars" hx-headers="js:i1:event.type" hx-trigger="load"></div>')
172+
this.server.respond()
173+
div.innerHTML.should.equal('Loaded!')
174+
})
175+
176+
it('using js: with hx-headers has event available on load event after swapping', function() {
177+
this.server.respondWith('POST', '/vars', function(xhr) {
178+
var headers = xhr.requestHeaders
179+
headers.i1.should.equal('load')
180+
xhr.respond(200, {}, '<div id="test2" hx-post="/vars2" hx-headers="js:i2:event.type" hx-trigger="load"></div>')
181+
})
182+
var div = make('<div id="test" hx-post="/vars" hx-headers="js:i1:event.type" hx-trigger="load" hx-swap="afterend"></div>')
183+
this.server.respond()
184+
185+
this.server.respondWith('POST', '/vars2', function(xhr) {
186+
var headers = xhr.requestHeaders
187+
headers.i2.should.equal('load')
188+
xhr.respond(200, {}, 'Nice!')
189+
})
190+
this.server.respond()
191+
var test2 = byId('test2')
192+
test2.innerHTML.should.equal("Nice!")
193+
})
150194
})

www/content/attributes/hx-headers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ If you wish for `hx-headers` to *evaluate* the values given, you can prefix the
1717
<div hx-get="/example" hx-headers='js:{myVal: calculateValue()}'>Get Some HTML, Including a Dynamic Custom Header from Javascript in the Request</div>
1818
```
1919

20-
When using evaluated code you can access the `event` object.
20+
When using evaluated code you can access the `event` object.
2121

2222
```html
2323
<div hx-get="/example" hx-headers='js:{"hx-trigger-event": event.type}'>Get some HTML, including a custom header indicating which event triggered the request.</div>

0 commit comments

Comments
 (0)