Fix tests (#96)

Closes #63

- Switch from testling to jsdom for browser APIs
- Switch from coverify to nyc for coverage reports
- Clean up related dead code and tooling
- Update Travis to use Node v6 and v8, since we need ES6 features for jsdom.
This commit was merged in pull request #96.
This commit is contained in:
BehindTheMath authored and GitHub committed 2018-01-08 17:21:18 -05:00
1 parent 6491e32437
commit a2e6cfc0af
7 files changed
+28 -12532

No files matched your search

+1
View File
@@ -2,3 +2,4 @@
node_modules/
tests/scripts/index.html
pjax.js
.nyc_output/
+3 -6
View File
@@ -1,7 +1,4 @@
language: "node_js"
before_script:
# testling use headless browser
# on travis-ci, firefox is the default one
# & it needs a display to works
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
node_js:
- "6"
- "8"
+10 -25
View File
@@ -22,44 +22,29 @@
],
"devDependencies": {
"browserify": "^3.46.0",
"coverify": "^1.0.6",
"jscs": "^1.6.2",
"jsdom": "^11.5.1",
"jsdom-global": "^3.0.2",
"jshint": "^2.5.6",
"npmpub": "^3.1.0",
"nyc": "^11.4.1",
"opn-cli": "^3.1.0",
"serve": "1.4.0",
"tape": "^3.0.0",
"testling": "^1.6.1"
"tap-nyc": "^1.0.3",
"tap-spec": "^4.1.1",
"tape": "^3.0.0"
},
"scripts": {
"lint": "jscs **/*.js && jshint . --exclude-path .gitignore",
"standalone": "browserify index.js --standalone Pjax > pjax.js",
"build-debug": "browserify index.js --debug --standalone Pjax > pjax.js",
"tests": "testling",
"test": "npm run lint && npm run standalone && npm run tests",
"test--html": "testling --html > tests/scripts/index.html",
"coverage": "browserify -t coverify tests/**/*.js | testling | coverify",
"tests": "tape -r ./tests/index.js ./tests/**/*.js",
"test": "npm run lint && npm run tests | tap-spec",
"coverage-tests": "npm run tests | tap-nyc",
"coverage": "nyc -x \"tests/**\" npm run coverage-tests",
"example": "opn http://localhost:3000/example/; serve .",
"prepublish": "npm run standalone",
"#release": "testling does not work in a process launch by npm... :facepalm:",
"release": "echo \"npmpub --skip-test --dry && npm test && npmpub --skip-test --skip-cleanup\""
},
"testling": {
"files": "tests/**/*.js",
"browsers": [
"ie/10..latest",
"firefox/4.0",
"firefox/latest",
"firefox/nightly",
"chrome/10",
"chrome/latest",
"chrome/canary",
"opera/12..latest",
"opera/next",
"safari/5.1..latest",
"ipad/6.0..latest",
"iphone/6.0..latest",
"android-browser/4.2..latest"
]
}
}
-12496
View File
File diff suppressed because it is too large. Load diff
+6
View File
@@ -0,0 +1,6 @@
var jsdomOptions = {
url: "https://example.org/",
runScripts: "dangerously"
}
require("jsdom-global")("", jsdomOptions)
+2 -1
View File
@@ -102,7 +102,8 @@ tape("test events on top level elements", function(t) {
el = window;
el.className = ""
on(el, "click", classCb)
// With jsdom, the default this is global, not window, so we need to explicitly bind to window.
on(el, "click", classCb.bind(window))
trigger(el, "click")
t.equal(el.className, "on", "attached callback has been fired properly on window")
+6 -4
View File
@@ -15,14 +15,16 @@ if (!('responseURL' in XMLHttpRequest.prototype)) {
}
tape("test xhr request", function(t) {
var url = "https://httpbin.org/get"
t.test("- request is made, gets a result, and is cache-busted", function(t) {
var requestCacheBust = request.bind({
options: {
cacheBust: true,
},
});
var r = requestCacheBust("https://api.github.com/", {}, function(result) {
t.equal(r.responseURL.indexOf("?"), 23, "XHR URL is cache-busted when configured to be")
var r = requestCacheBust(url, {}, function(result) {
t.equal(r.responseURL.indexOf("?"), url.length, "XHR URL is cache-busted when configured to be")
try {
result = JSON.parse(result)
}
@@ -39,8 +41,8 @@ tape("test xhr request", function(t) {
cacheBust: false,
},
});
var r = requestNoCacheBust("https://api.github.com/", {}, function() {
t.equal(r.responseURL, "https://api.github.com/", "XHR URL is left untouched")
var r = requestNoCacheBust(url, {}, function() {
t.equal(r.responseURL, url, "XHR URL is left untouched")
t.end()
})
})