diff options
Diffstat (limited to 'test/attributes/hx-params.js')
-rw-r--r-- | test/attributes/hx-params.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/test/attributes/hx-params.js b/test/attributes/hx-params.js new file mode 100644 index 00000000..49c9d54f --- /dev/null +++ b/test/attributes/hx-params.js @@ -0,0 +1,83 @@ +describe("hx-params attribute", function() { + beforeEach(function () { + this.server = makeServer(); + clearWorkArea(); + }); + afterEach(function () { + this.server.restore(); + clearWorkArea(); + }); + + it('none excludes all params', function () { + this.server.respondWith("POST", "/params", function (xhr) { + var params = parseParams(xhr.requestBody); + should.equal(params['i1'], undefined); + should.equal(params['i2'], undefined); + should.equal(params['i3'], undefined); + xhr.respond(200, {}, "Clicked!") + }); + var form = make('<form hx-trigger="click" hx-post="/params" hx-params="none">' + + '<input name="i1" value="test"/>' + + '<input name="i2" value="test"/>' + + '<input name="i3" value="test"/>' + + '</form> '); + form.click(); + this.server.respond(); + form.innerHTML.should.equal("Clicked!"); + }); + + it('"*" includes all params', function () { + this.server.respondWith("POST", "/params", function (xhr) { + var params = parseParams(xhr.requestBody); + should.equal(params['i1'], "test"); + should.equal(params['i2'], "test"); + should.equal(params['i3'], "test"); + xhr.respond(200, {}, "Clicked!") + }); + var form = make('<form hx-trigger="click" hx-post="/params" hx-params="*">' + + '<input name="i1" value="test"/>' + + '<input name="i2" value="test"/>' + + '<input name="i3" value="test"/>' + + '</form> '); + form.click(); + this.server.respond(); + form.innerHTML.should.equal("Clicked!"); + }); + + it('named includes works', function () { + this.server.respondWith("POST", "/params", function (xhr) { + var params = parseParams(xhr.requestBody); + should.equal(params['i1'], "test"); + should.equal(params['i2'], undefined); + should.equal(params['i3'], "test"); + xhr.respond(200, {}, "Clicked!") + }); + var form = make('<form hx-trigger="click" hx-post="/params" hx-params="i1, i3">' + + '<input name="i1" value="test"/>' + + '<input name="i2" value="test"/>' + + '<input name="i3" value="test"/>' + + '</form> '); + form.click(); + this.server.respond(); + form.innerHTML.should.equal("Clicked!"); + }); + + it('named exclude works', function () { + this.server.respondWith("POST", "/params", function (xhr) { + var params = parseParams(xhr.requestBody); + should.equal(params['i1'], undefined); + should.equal(params['i2'], "test"); + should.equal(params['i3'], undefined); + xhr.respond(200, {}, "Clicked!") + }); + var form = make('<form hx-trigger="click" hx-post="/params" hx-params="not i1, i3">' + + '<input name="i1" value="test"/>' + + '<input name="i2" value="test"/>' + + '<input name="i3" value="test"/>' + + '</form> '); + form.click(); + this.server.respond(); + form.innerHTML.should.equal("Clicked!"); + }); + +});
\ No newline at end of file |