Add tests to ensure options are not accidentally modified

This commit is contained in:
Tim Trinidad
2018-01-23 13:22:48 -05:00
parent 526a0883a2
commit f196604d73
3 changed files with 37 additions and 1 deletions

View File

@@ -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",

View File

@@ -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();
})

View File

@@ -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();
})