summaryrefslogtreecommitdiffstatshomepage
path: root/test/attributes/hx-post.js
blob: b151a8458f64a3d7b58a6b16531157d9aa85f80e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
describe('hx-post attribute', function() {
  beforeEach(function() {
    this.server = makeServer()
    clearWorkArea()
  })
  afterEach(function() {
    this.server.restore()
    clearWorkArea()
  })

  it('issues a POST request with proper headers', function() {
    this.server.respondWith('POST', '/test', function(xhr) {
      should.equal(xhr.requestHeaders['X-HTTP-Method-Override'], undefined)
      xhr.respond(200, {}, 'Posted!')
    })

    var btn = make('<button hx-post="/test">Click Me!</button>')
    btn.click()
    this.server.respond()
    btn.innerHTML.should.equal('Posted!')
  })

  it('issues a POST request with proper headers  w/ data-* prefix', function() {
    this.server.respondWith('POST', '/test', function(xhr) {
      should.equal(xhr.requestHeaders['X-HTTP-Method-Override'], undefined)
      xhr.respond(200, {}, 'Posted!')
    })

    var btn = make('<button data-hx-post="/test">Click Me!</button>')
    btn.click()
    this.server.respond()
    btn.innerHTML.should.equal('Posted!')
  })
})