Add tests to ensure options are not accidentally modified
This commit is contained in:
@@ -38,7 +38,7 @@
|
|||||||
"lint": "jscs . && jshint . --exclude-path .gitignore",
|
"lint": "jscs . && jshint . --exclude-path .gitignore",
|
||||||
"standalone": "browserify index.js --standalone Pjax > pjax.js",
|
"standalone": "browserify index.js --standalone Pjax > pjax.js",
|
||||||
"build-debug": "browserify index.js --debug --standalone Pjax > pjax.js",
|
"build-debug": "browserify index.js --debug --standalone Pjax > pjax.js",
|
||||||
"tests": "tape -r ./tests/setup.js ./tests/**/*.js",
|
"tests": "tape -r ./tests/setup.js ./tests/lib/*.js ./tests/lib/proto/*.js",
|
||||||
"test": "npm run lint && npm run tests | tap-spec",
|
"test": "npm run lint && npm run tests | tap-spec",
|
||||||
"coverage-tests": "npm run tests | tap-nyc",
|
"coverage-tests": "npm run tests | tap-nyc",
|
||||||
"coverage": "nyc -x \"tests/**\" npm run coverage-tests",
|
"coverage": "nyc -x \"tests/**\" npm run coverage-tests",
|
||||||
|
|||||||
@@ -76,3 +76,21 @@ tape("test attach form preventDefaulted events", function(t) {
|
|||||||
|
|
||||||
t.end()
|
t.end()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tape("test options are not modified by attachForm", function(t) {
|
||||||
|
var form = document.createElement("form")
|
||||||
|
var options = {foo: "bar"}
|
||||||
|
var loadUrl = () => {}
|
||||||
|
|
||||||
|
attachForm.call({options, loadUrl}, form)
|
||||||
|
|
||||||
|
var internalUri = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search
|
||||||
|
form.action = internalUri
|
||||||
|
form.method = "GET"
|
||||||
|
trigger(form, "submit")
|
||||||
|
|
||||||
|
t.equal(1, Object.keys(options).length, "options object that is passed in should not be modified")
|
||||||
|
t.equal("bar", options.foo, "options object that is passed in should not be modified")
|
||||||
|
|
||||||
|
t.end();
|
||||||
|
})
|
||||||
|
|||||||
@@ -75,3 +75,21 @@ tape("test attach link preventDefaulted events", function(t) {
|
|||||||
|
|
||||||
t.end()
|
t.end()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tape("test options are not modified by attachLink", function(t) {
|
||||||
|
var a = document.createElement("a")
|
||||||
|
var options = {foo: "bar"}
|
||||||
|
var loadUrl = () => {};
|
||||||
|
|
||||||
|
attachLink.call({options, loadUrl}, a)
|
||||||
|
|
||||||
|
var internalUri = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search
|
||||||
|
a.href = internalUri
|
||||||
|
|
||||||
|
trigger(a, "click")
|
||||||
|
|
||||||
|
t.equal(1, Object.keys(options).length, "options object that is passed in should not be modified")
|
||||||
|
t.equal("bar", options.foo, "options object that is passed in should not be modified")
|
||||||
|
|
||||||
|
t.end();
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user