describe('hx-target attribute', function() { beforeEach(function() { this.server = sinon.fakeServer.create() clearWorkArea() }) afterEach(function() { this.server.restore() clearWorkArea() }) it('targets an adjacent element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var btn = make('') var div1 = make('
') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a parent element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('
') var btn = byId('b1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a `this` element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('
') var btn = byId('b1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a `closest` element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('

') var btn = byId('b1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a `closest` element properly w/ hyperscript syntax', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('

') var btn = byId('b1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a `find` element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('
Click Me!
') div1.click() this.server.respond() var span1 = byId('s1') var span2 = byId('s2') span1.innerHTML.should.equal('Clicked!') span2.innerHTML.should.equal('') }) it('targets a `find` element properly w/ hyperscript syntax', function() { this.server.respondWith('GET', '/test', 'Clicked!') var div1 = make('
Click Me!
') div1.click() this.server.respond() var span1 = byId('s1') var span2 = byId('s2') span1.innerHTML.should.equal('Clicked!') span2.innerHTML.should.equal('') }) it('targets an inner element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') var btn = make('') var div1 = byId('d1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets an inner element properly w/ hyperscript syntax', function() { this.server.respondWith('GET', '/test', 'Clicked!') var btn = make('') var div1 = byId('d1') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('handles bad target gracefully', function() { this.server.respondWith('GET', '/test', 'Clicked!') var btn = make('') btn.click() this.server.respond() btn.innerHTML.should.equal('Click Me!') }) it('targets an adjacent element properly w/ data-* prefix', function() { this.server.respondWith('GET', '/test', 'Clicked!') var btn = make('') var div1 = make('
') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') }) it('targets a `next` element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('') }) it('targets a `next` element properly w/ hyperscript syntax', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('') }) it('targets a `previous` element properly', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('Clicked!') }) it('targets a `previous` element properly w/ hyperscript syntax', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('Clicked!') }) it('targets a `next` element properly without selector', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('Clicked!') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('') }) it('targets a `previous` element properly without selector', function() { this.server.respondWith('GET', '/test', 'Clicked!') make('
' + '
' + ' ' + '
' + '
' + '
') var btn = byId('b1') var div1 = byId('d1') var div2 = byId('d2') var div3 = byId('d3') btn.click() this.server.respond() div1.innerHTML.should.equal('') div2.innerHTML.should.equal('') div3.innerHTML.should.equal('Clicked!') }) })