diff --git a/.eslintrc.js b/.eslintrc.js index e033996..597a8b3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,37 +1,24 @@ module.exports = { - 'parser': 'typescript-eslint-parser', - 'globals': { - 'Pretender': true, - 'sinon': true, // karma-sinon + parser: "typescript-eslint-parser", + globals: { + Pretender: true, + sinon: true // karma-sinon }, - 'env': { - 'browser': true, - 'es6': true, - 'node': true, - 'jquery': true, - 'qunit': true, + env: { + browser: true, + es6: true, + node: true, + jquery: true, + qunit: true }, - 'extends': 'eslint:recommended', - 'parserOptions': { - 'ecmaVersion': 2015, - 'sourceType': 'module' + extends: "eslint:recommended", + parserOptions: { + ecmaVersion: 2015, + sourceType: "module" }, - 'rules': { - 'indent': [ - 'error', - 2 - ], - 'linebreak-style': [ - 'error', - 'unix' - ], - 'quotes': [ - 'error', - 'single' - ], - 'semi': [ - 'error', - 'always' - ] + rules: { + indent: ["error", 2], + "linebreak-style": ["error", "unix"], + semi: ["error", "always"] } }; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..1afd011 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +/coverage +/dist \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.prettierrc @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/iife-wrapper.js b/iife-wrapper.js index bd3730d..07e91e3 100644 --- a/iife-wrapper.js +++ b/iife-wrapper.js @@ -4,29 +4,29 @@ var Pretender = (function(self) { } var appearsBrowserified = - typeof self !== 'undefined' && - typeof process !== 'undefined' && - (Object.prototype.toString.call(process) === '[object Object]' || - Object.prototype.toString.call(process) === '[object process]'); + typeof self !== "undefined" && + typeof process !== "undefined" && + (Object.prototype.toString.call(process) === "[object Object]" || + Object.prototype.toString.call(process) === "[object process]"); var RouteRecognizer = appearsBrowserified - ? getModuleDefault(require('route-recognizer')) + ? getModuleDefault(require("route-recognizer")) : self.RouteRecognizer; var FakeXMLHttpRequest = appearsBrowserified - ? getModuleDefault(require('fake-xml-http-request')) + ? getModuleDefault(require("fake-xml-http-request")) : self.FakeXMLHttpRequest; // fetch related ponyfills var FakeFetch = appearsBrowserified - ? getModuleDefault(require('whatwg-fetch')) + ? getModuleDefault(require("whatwg-fetch")) : self.WHATWGFetch; /*==ROLLUP_CONTENT==*/ - if (typeof module === 'object') { + if (typeof module === "object") { module.exports = Pretender; - } else if (typeof define !== 'undefined') { - define('pretender', [], function() { + } else if (typeof define !== "undefined") { + define("pretender", [], function() { return Pretender; }); } diff --git a/karma.conf.js b/karma.conf.js index d8b803a..26065fa 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -3,71 +3,70 @@ module.exports = function(config) { config.set({ - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - plugins: ['karma-jquery', 'karma-qunit', 'karma-coverage', 'karma-sinon', 'karma-chrome-launcher'], + basePath: "", + + plugins: [ + "karma-jquery", + "karma-qunit", + "karma-coverage", + "karma-sinon", + "karma-chrome-launcher" + ], // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['qunit', 'sinon', 'jquery-3.4.0'], + frameworks: ["qunit", "sinon", "jquery-3.4.0"], // list of files / patterns to load in the browser files: [ - 'node_modules/fake-xml-http-request/fake_xml_http_request.js', - 'node_modules/route-recognizer/dist/route-recognizer.js', - 'node_modules/es6-promise/dist/es6-promise.auto.js', - 'node_modules/abortcontroller-polyfill/dist/abortcontroller-polyfill-only.js', - 'node_modules/whatwg-fetch/dist/fetch.umd.js', - 'dist/pretender.js', - 'test/**/*.js' + "node_modules/fake-xml-http-request/fake_xml_http_request.js", + "node_modules/route-recognizer/dist/route-recognizer.js", + "node_modules/es6-promise/dist/es6-promise.auto.js", + "node_modules/abortcontroller-polyfill/dist/abortcontroller-polyfill-only.js", + "node_modules/whatwg-fetch/dist/fetch.umd.js", + "dist/pretender.js", + "test/**/*.js" ], // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { - 'dist/pretender.js': ['coverage'] + "dist/pretender.js": ["coverage"] }, coverageReporter: { - type: 'lcov', - dir: 'coverage' + type: "lcov", + dir: "coverage" }, - // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['dots', 'coverage'], - + reporters: ["dots", "coverage"], // web server port port: 9876, - // enable / disable colors in the output (reporters and logs) colors: true, - // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, - // enable / disable watching file and executing tests whenever any file changes autoWatch: true, - // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome', 'ChromeHeadless', 'ChromeHeadlessNoSandbox'], + browsers: ["Chrome", "ChromeHeadless", "ChromeHeadlessNoSandbox"], // you can define custom flags customLaunchers: { ChromeHeadlessNoSandbox: { - base: 'ChromeHeadless', - flags: ['--no-sandbox'] + base: "ChromeHeadless", + flags: ["--no-sandbox"] } }, diff --git a/package.json b/package.json index 20e25ef..bd8b3d3 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "devDependencies": { "@rollup/plugin-commonjs": "^11.0.2", "@rollup/plugin-node-resolve": "^7.1.1", - "rollup-plugin-typescript": "^1.0.0", "abortcontroller-polyfill": "^1.1.9", "coveralls": "^3.0.9", "es6-promise": "^4.0.5", @@ -41,10 +40,12 @@ "karma-qunit": "^4.0.0", "karma-sinon": "^1.0.5", "phantomjs": "^2.1.7", + "prettier": "1.19.1", "qunit": "^2.6.1", "release-it": "^12.4.3", "release-it-lerna-changelog": "^1.0.3", "rollup": "^1.1.2", + "rollup-plugin-typescript": "^1.0.0", "sinon": "^9.0.0", "tslib": "^1.9.3", "typescript": "~3.1.1", diff --git a/rollup.config.js b/rollup.config.js index 5485487..cf73094 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,33 +1,33 @@ -const commonjs = require('@rollup/plugin-commonjs'); -const resolve = require('@rollup/plugin-node-resolve'); -const typescript = require('rollup-plugin-typescript'); -const pkg = require('./package.json'); -const fs = require('fs'); +const commonjs = require("@rollup/plugin-commonjs"); +const resolve = require("@rollup/plugin-node-resolve"); +const typescript = require("rollup-plugin-typescript"); +const pkg = require("./package.json"); +const fs = require("fs"); const globals = { - 'whatwg-fetch': 'FakeFetch', - 'fake-xml-http-request': 'FakeXMLHttpRequest', - 'route-recognizer': 'RouteRecognizer', - 'url-parse': 'urlParse' + "whatwg-fetch": "FakeFetch", + "fake-xml-http-request": "FakeXMLHttpRequest", + "route-recognizer": "RouteRecognizer", + "url-parse": "urlParse" }; -const rollupTemplate = fs.readFileSync('./iife-wrapper.js').toString(); -const [banner, footer] = rollupTemplate.split('/*==ROLLUP_CONTENT==*/'); +const rollupTemplate = fs.readFileSync("./iife-wrapper.js").toString(); +const [banner, footer] = rollupTemplate.split("/*==ROLLUP_CONTENT==*/"); module.exports = { - input: 'src/index.ts', + input: "src/index.ts", external: Object.keys(pkg.dependencies), output: [ { - name: 'Pretender', + name: "Pretender", file: pkg.main, - format: 'iife', + format: "iife", globals, banner, footer }, { file: pkg.module, - format: 'es' + format: "es" } ], plugins: [commonjs(), resolve(), typescript()] diff --git a/test/calling_test.js b/test/calling_test.js index f9cc9b2..8803899 100644 --- a/test/calling_test.js +++ b/test/calling_test.js @@ -2,50 +2,52 @@ var describe = QUnit.module; var it = QUnit.test; var clock; -describe('pretender invoking', function(config) { +describe("pretender invoking", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); config.afterEach(function() { - if (clock) { clock.restore(); } + if (clock) { + clock.restore(); + } this.pretender.shutdown(); }); - it('a mapping function is optional', function(assert) { + it("a mapping function is optional", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); }); - it('mapping can be called directly', function(assert) { + it("mapping can be called directly", function(assert) { var wasCalled; function map() { - this.get('/some/path', function() { + this.get("/some/path", function() { wasCalled = true; }); } this.pretender.map(map); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); }); - it('clobbering duplicate mapping works', function(assert) { + it("clobbering duplicate mapping works", function(assert) { var wasCalled, wasCalled2; function map() { - this.get('/some/path', function() { + this.get("/some/path", function() { wasCalled = true; }); } function map2() { - this.get('/some/path', function() { + this.get("/some/path", function() { wasCalled2 = true; }); } @@ -53,250 +55,245 @@ describe('pretender invoking', function(config) { this.pretender.map(map); this.pretender.map(map2); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(!wasCalled); assert.ok(wasCalled2); }); - it('ordered duplicate mapping works', function(assert) { + it("ordered duplicate mapping works", function(assert) { var wasCalled, wasCalled2; function map() { - this.get('/some/path', function() { + this.get("/some/path", function() { wasCalled = true; }); } this.pretender.map(map); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); function map2() { - this.get('/some/path', function() { + this.get("/some/path", function() { wasCalled2 = true; }); } this.pretender.map(map2); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); assert.ok(wasCalled2); }); - it('params are passed', function(assert) { + it("params are passed", function(assert) { var params; - this.pretender.get('/some/path/:id', function(request) { + this.pretender.get("/some/path/:id", function(request) { params = request.params; }); - $.ajax({ url: '/some/path/1' }); + $.ajax({ url: "/some/path/1" }); assert.equal(params.id, 1); }); - it('queryParams are passed', function(assert) { + it("queryParams are passed", function(assert) { var params; - this.pretender.get('/some/path', function(request) { + this.pretender.get("/some/path", function(request) { params = request.queryParams; }); - $.ajax({ url: '/some/path?zulu=nation' }); - assert.equal(params.zulu, 'nation'); + $.ajax({ url: "/some/path?zulu=nation" }); + assert.equal(params.zulu, "nation"); }); - it('request body is accessible', function(assert) { + it("request body is accessible", function(assert) { var params; - this.pretender.post('/some/path/1', function(request) { + this.pretender.post("/some/path/1", function(request) { params = request.requestBody; }); $.ajax({ - method: 'post', - url: '/some/path/1', + method: "post", + url: "/some/path/1", data: { - ok: true, - }, + ok: true + } }); - assert.equal(params, 'ok=true'); + assert.equal(params, "ok=true"); }); - it('request headers are accessible', function(assert) { + it("request headers are accessible", function(assert) { var headers; - this.pretender.post('/some/path/1', function(request) { + this.pretender.post("/some/path/1", function(request) { headers = request.requestHeaders; }); $.ajax({ - method: 'post', - url: '/some/path/1', + method: "post", + url: "/some/path/1", headers: { - 'A-Header': 'value', - }, + "A-Header": "value" + } }); - assert.equal(headers['A-Header'], 'value'); + assert.equal(headers["A-Header"], "value"); }); - it('adds requests to the list of handled requests', function(assert) { - this.pretender.get('/some/path', function(/*request*/) { - }); + it("adds requests to the list of handled requests", function(assert) { + this.pretender.get("/some/path", function(/*request*/) {}); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); var req = this.pretender.handledRequests[0]; - assert.equal(req.url, '/some/path'); + assert.equal(req.url, "/some/path"); }); - it('increments the handler\'s request count', function(assert) { + it("increments the handler's request count", function(assert) { var handler = function(/*req*/) {}; - this.pretender.get('/some/path', handler); + this.pretender.get("/some/path", handler); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.equal(handler.numberOfCalls, 1); }); - it('handledRequest is called', function(assert) { + it("handledRequest is called", function(assert) { var done = assert.async(); var json = '{foo: "bar"}'; - this.pretender.get('/some/path', function(/*req*/) { + this.pretender.get("/some/path", function(/*req*/) { return [200, {}, json]; }); this.pretender.handledRequest = function(verb, path, request) { - assert.ok(true, 'handledRequest hook was called'); - assert.equal(verb, 'GET'); - assert.equal(path, '/some/path'); + assert.ok(true, "handledRequest hook was called"); + assert.equal(verb, "GET"); + assert.equal(path, "/some/path"); assert.equal(request.responseText, json); assert.equal(request.response, json); - assert.equal(request.status, '200'); + assert.equal(request.status, "200"); done(); }; - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); }); - it('prepareBody is called', function(assert) { + it("prepareBody is called", function(assert) { var done = assert.async(); - var obj = { foo: 'bar' }; + var obj = { foo: "bar" }; this.pretender.prepareBody = JSON.stringify; - this.pretender.get('/some/path', function(/*req*/) { + this.pretender.get("/some/path", function(/*req*/) { return [200, {}, obj]; }); $.ajax({ - url: '/some/path', + url: "/some/path", success: function(resp) { assert.deepEqual(JSON.parse(resp), obj); done(); - }, + } }); }); - it('prepareHeaders is called', function(assert) { + it("prepareHeaders is called", function(assert) { var done = assert.async(); this.pretender.prepareHeaders = function(headers) { - headers['X-WAS-CALLED'] = 'YES'; + headers["X-WAS-CALLED"] = "YES"; return headers; }; - this.pretender.get('/some/path', function(/*req*/) { - return [200, {}, '']; + this.pretender.get("/some/path", function(/*req*/) { + return [200, {}, ""]; }); $.ajax({ - url: '/some/path', + url: "/some/path", complete: function(xhr) { - assert.equal(xhr.getResponseHeader('X-WAS-CALLED'), 'YES'); + assert.equal(xhr.getResponseHeader("X-WAS-CALLED"), "YES"); done(); - }, + } }); }); - it('will use the latest defined handler', function(assert) { + it("will use the latest defined handler", function(assert) { assert.expect(1); var latestHandlerWasCalled = false; - this.pretender.get('/some/path', function(/*request*/) { + this.pretender.get("/some/path", function(/*request*/) { assert.ok(false); }); - this.pretender.get('/some/path', function(/*request*/) { + this.pretender.get("/some/path", function(/*request*/) { latestHandlerWasCalled = true; }); - $.ajax({ url: '/some/path' }); - assert.ok(latestHandlerWasCalled, 'calls the latest handler'); + $.ajax({ url: "/some/path" }); + assert.ok(latestHandlerWasCalled, "calls the latest handler"); }); - it('will error when using fully qualified URLs instead of paths', function( - assert - ) { + it("will error when using fully qualified URLs instead of paths", function(assert) { var pretender = this.pretender; - pretender.get('/some/path', function(/*request*/) { - return [200, {}, '']; + pretender.get("/some/path", function(/*request*/) { + return [200, {}, ""]; }); assert.throws(function() { - pretender.handleRequest({ url: 'http://myserver.com/some/path' }); + pretender.handleRequest({ url: "http://myserver.com/some/path" }); }); }); - it('is resolved asynchronously', function(assert) { + it("is resolved asynchronously", function(assert) { var done = assert.async(); - var val = 'unset'; + var val = "unset"; - this.pretender.get('/some/path', function(/*request*/) { - return [200, {}, '']; + this.pretender.get("/some/path", function(/*request*/) { + return [200, {}, ""]; }); $.ajax({ - url: '/some/path', + url: "/some/path", complete: function() { - assert.equal(val, 'set'); + assert.equal(val, "set"); done(); - }, + } }); - assert.equal(val, 'unset'); - val = 'set'; + assert.equal(val, "unset"); + val = "set"; }); - it('can be resolved synchronous', function(assert) { + it("can be resolved synchronous", function(assert) { var val = 0; this.pretender.get( - '/some/path', + "/some/path", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, false ); $.ajax({ - url: '/some/path', + url: "/some/path", complete: function() { assert.equal(val, 0); val++; - }, + } }); assert.equal(val, 1); }); - it('can be both asynchronous or synchronous based on an async function', function( - assert - ) { + it("can be both asynchronous or synchronous based on an async function", function(assert) { var done = assert.async(); var isAsync = false; var val = 0; this.pretender.get( - '/some/path', + "/some/path", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, function() { return isAsync; @@ -304,11 +301,11 @@ describe('pretender invoking', function(config) { ); $.ajax({ - url: '/some/path', + url: "/some/path", complete: function() { assert.equal(val, 0); val++; - }, + } }); assert.equal(val, 1); @@ -317,36 +314,36 @@ describe('pretender invoking', function(config) { isAsync = 0; $.ajax({ - url: '/some/path', + url: "/some/path", complete: function() { assert.equal(val, 3); done(); - }, + } }); assert.equal(val, 2); val++; }); - it('can be configured to resolve after a specified time', function(assert) { + it("can be configured to resolve after a specified time", function(assert) { var done = assert.async(); var val = 0; this.pretender.get( - '/some/path', + "/some/path", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 100 ); $.ajax({ - url: '/some/path', + url: "/some/path", complete: function() { assert.equal(val, 1); done(); - }, + } }); setTimeout(function() { @@ -355,20 +352,20 @@ describe('pretender invoking', function(config) { }, 0); }); - it('can be configured to require manually resolution', function(assert) { + it("can be configured to require manually resolution", function(assert) { var val = 0; var req = $.ajaxSettings.xhr(); this.pretender.get( - '/some/path', + "/some/path", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, true ); $.ajax({ - url: '/some/path', + url: "/some/path", xhr: function() { // use the xhr we already made and have a reference to return req; @@ -376,7 +373,7 @@ describe('pretender invoking', function(config) { complete: function() { assert.equal(val, 1); val++; - }, + } }); assert.equal(val, 0); @@ -387,49 +384,51 @@ describe('pretender invoking', function(config) { assert.equal(val, 2); }); - it('requiresManualResolution returns true for endpoints configured with `true` for async', function( - assert - ) { - this.pretender.get('/some/path', function(/*request*/) {}, true); - this.pretender.get('/some/other/path', function() {}); + it("requiresManualResolution returns true for endpoints configured with `true` for async", function(assert) { + this.pretender.get("/some/path", function(/*request*/) {}, true); + this.pretender.get("/some/other/path", function() {}); - assert.ok(this.pretender.requiresManualResolution('get', '/some/path')); + assert.ok(this.pretender.requiresManualResolution("get", "/some/path")); assert.ok( - !this.pretender.requiresManualResolution('get', '/some/other/path') + !this.pretender.requiresManualResolution("get", "/some/other/path") ); }); it( - 'async requests with `onprogress` upload events in the upload ' + - ' trigger a progress event each 50ms', + "async requests with `onprogress` upload events in the upload " + + " trigger a progress event each 50ms", function(assert) { var done = assert.async(); var progressEventCount = 0; this.pretender.post( - '/uploads', + "/uploads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 300 ); var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/uploads'); + xhr.open("POST", "/uploads"); var lastLoaded = 0; - var postBody = 'some data'; + var postBody = "some data"; xhr.upload.onprogress = function(event) { var loaded = event.loaded; var total = event.total; - assert.equal(total, postBody.length, 'ProgressEvent has total of requestBody byte size'); - assert.ok(loaded > lastLoaded, 'making progress'); - assert.ok(loaded <= total, 'loaded should always not exceed total'); + assert.equal( + total, + postBody.length, + "ProgressEvent has total of requestBody byte size" + ); + assert.ok(loaded > lastLoaded, "making progress"); + assert.ok(loaded <= total, "loaded should always not exceed total"); progressEventCount++; }; xhr.onload = function() { assert.equal( progressEventCount, 5, - 'In a request of 300ms the progress event has been fired 5 times' + "In a request of 300ms the progress event has been fired 5 times" ); done(); }; @@ -437,29 +436,31 @@ describe('pretender invoking', function(config) { } ); - it('`onprogress` upload events don\'t keep firing once the request has ended', function( - assert - ) { + it("`onprogress` upload events don't keep firing once the request has ended", function(assert) { clock = sinon.useFakeTimers(); var progressEventCount = 0; this.pretender.post( - '/uploads', + "/uploads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 210 ); var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/uploads'); + xhr.open("POST", "/uploads"); var lastLoaded = 0; - var postBody = new Blob(['some data']); + var postBody = new Blob(["some data"]); xhr.upload.onprogress = function(event) { var loaded = event.loaded; var total = event.total; - assert.equal(total, postBody.size, 'ProgressEvent has total of requestBody byte size'); - assert.ok(loaded > lastLoaded, 'making progress'); - assert.ok(loaded <= total, 'loaded should always not exceed total'); + assert.equal( + total, + postBody.size, + "ProgressEvent has total of requestBody byte size" + ); + assert.ok(loaded > lastLoaded, "making progress"); + assert.ok(loaded <= total, "loaded should always not exceed total"); progressEventCount++; }; xhr.send(postBody); @@ -467,34 +468,36 @@ describe('pretender invoking', function(config) { assert.equal( progressEventCount, 4, - 'No `onprogress` events are fired after the the request finalizes' + "No `onprogress` events are fired after the the request finalizes" ); }); - it('no progress upload events are fired after the request is aborted', function( - assert - ) { + it("no progress upload events are fired after the request is aborted", function(assert) { var progressEventCount = 0; clock = sinon.useFakeTimers(); this.pretender.post( - '/uploads', + "/uploads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 210 ); var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/uploads'); + xhr.open("POST", "/uploads"); var postBody = new ArrayBuffer(8); xhr.upload.onprogress = function(event) { var loaded = event.loaded; var total = event.total; - assert.equal(total, postBody.byteLength, 'ProgressEvent has total of requestBody byte size'); - assert.ok(loaded > 0, 'making progress'); - assert.ok(loaded <= total, 'loaded should always not exceed total'); + assert.equal( + total, + postBody.byteLength, + "ProgressEvent has total of requestBody byte size" + ); + assert.ok(loaded > 0, "making progress"); + assert.ok(loaded <= total, "loaded should always not exceed total"); progressEventCount++; }; xhr.send(postBody); @@ -505,27 +508,25 @@ describe('pretender invoking', function(config) { assert.equal( progressEventCount, 1, - 'only one progress event was triggered because the request was aborted' + "only one progress event was triggered because the request was aborted" ); }); - it('async requests with `onprogress` events trigger a progress event each 50ms', function( - assert - ) { + it("async requests with `onprogress` events trigger a progress event each 50ms", function(assert) { var done = assert.async(); var progressEventCount = 0; this.pretender.get( - '/downloads', + "/downloads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 300 ); var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/downloads'); + xhr.open("GET", "/downloads"); xhr.onprogress = function(event) { - assert.equal(event.total, 0, 'GET request has no requestBody'); + assert.equal(event.total, 0, "GET request has no requestBody"); assert.equal(event.loaded, event.total); progressEventCount++; }; @@ -533,72 +534,68 @@ describe('pretender invoking', function(config) { assert.equal( progressEventCount, 5, - 'In a request of 300ms the progress event has been fired 5 times' + "In a request of 300ms the progress event has been fired 5 times" ); done(); }; - xhr.send('some data'); + xhr.send("some data"); }); - it('`onprogress` download events don\'t keep firing once the request has ended', function( - assert - ) { + it("`onprogress` download events don't keep firing once the request has ended", function(assert) { clock = sinon.useFakeTimers(); var progressEventCount = 0; this.pretender.get( - '/downloads', + "/downloads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 210 ); var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/downloads'); + xhr.open("GET", "/downloads"); xhr.onprogress = function(/*e*/) { progressEventCount++; }; - xhr.send('some data'); + xhr.send("some data"); clock.tick(510); assert.equal( progressEventCount, 4, - 'No `onprogress` events are fired after the the request finalizes' + "No `onprogress` events are fired after the the request finalizes" ); }); - it('no progress download events are fired after the request is aborted', function( - assert - ) { + it("no progress download events are fired after the request is aborted", function(assert) { var progressEventCount = 0; clock = sinon.useFakeTimers(); this.pretender.get( - '/downloads', + "/downloads", function(/*request*/) { - return [200, {}, '']; + return [200, {}, ""]; }, 210 ); var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/downloads'); + xhr.open("GET", "/downloads"); xhr.onprogress = function(/*e*/) { progressEventCount++; }; - xhr.send('some data'); + xhr.send("some data"); clock.tick(90); xhr.abort(); clock.tick(220); assert.equal( progressEventCount, 1, - 'only one progress event was triggered because the request was aborted' + "only one progress event was triggered because the request was aborted" ); }); - it('resolves cross-origin requests', function(assert) { - var url = 'http://status.github.com/api/status'; - var payload = 'it works!'; + it("resolves cross-origin requests", function(assert) { + var url = "http://status.github.com/api/status"; + var payload = "it works!"; var wasCalled; this.pretender.get(url, function() { @@ -610,27 +607,27 @@ describe('pretender invoking', function(config) { assert.ok(wasCalled); }); - it('accepts a handler that returns a promise', function(assert) { + it("accepts a handler that returns a promise", function(assert) { var done = assert.async(); var json = '{foo: "bar"}'; - this.pretender.get('/some/path', function(/*req*/) { + this.pretender.get("/some/path", function(/*req*/) { return new Promise(function(resolve) { resolve([200, {}, json]); }); }); this.pretender.handledRequest = function(verb, path, request) { - assert.ok(true, 'handledRequest hook was called'); - assert.equal(verb, 'GET'); - assert.equal(path, '/some/path'); + assert.ok(true, "handledRequest hook was called"); + assert.equal(verb, "GET"); + assert.equal(path, "/some/path"); assert.equal(request.responseText, json); assert.equal(request.response, json); - assert.equal(request.status, '200'); + assert.equal(request.status, "200"); done(); }; - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); }); }); diff --git a/test/creation_test.js b/test/creation_test.js index f6bf86b..de2c2b6 100644 --- a/test/creation_test.js +++ b/test/creation_test.js @@ -2,7 +2,7 @@ var pretender; var describe = QUnit.module; var it = QUnit.test; -describe('pretender creation', function(config) { +describe("pretender creation", function(config) { config.afterEach(function() { if (pretender) { pretender.shutdown(); @@ -10,45 +10,45 @@ describe('pretender creation', function(config) { pretender = null; }); - it('a mapping function is optional', function(assert) { + it("a mapping function is optional", function(assert) { try { pretender = new Pretender(); } catch (e) { assert.ok(false); } - assert.ok(true, 'does not raise'); + assert.ok(true, "does not raise"); }); - it('many maps can be passed on creation', function(assert) { + it("many maps can be passed on creation", function(assert) { var aWasCalled = false; var bWasCalled = false; var mapA = function() { - this.get('/some/path', function() { + this.get("/some/path", function() { aWasCalled = true; }); }; var mapB = function() { - this.get('/other/path', function() { + this.get("/other/path", function() { bWasCalled = true; }); }; pretender = new Pretender(mapA, mapB); - $.ajax({ url: '/some/path' }); - $.ajax({ url: '/other/path' }); + $.ajax({ url: "/some/path" }); + $.ajax({ url: "/other/path" }); assert.ok(aWasCalled); assert.ok(bWasCalled); }); - it('an error is thrown when a request handler is missing', function(assert) { + it("an error is thrown when a request handler is missing", function(assert) { assert.throws(function() { pretender = new Pretender(); - pretender.get('/path', undefined); - }, 'The function you tried passing to Pretender to handle GET /path is undefined or missing.'); + pretender.get("/path", undefined); + }, "The function you tried passing to Pretender to handle GET /path is undefined or missing."); }); }); diff --git a/test/disable_unhandled_test.js b/test/disable_unhandled_test.js index 8665abd..42cd70d 100644 --- a/test/disable_unhandled_test.js +++ b/test/disable_unhandled_test.js @@ -1,16 +1,16 @@ var describe = QUnit.module; var it = QUnit.test; -describe('disable unhandled request', function(config) { +describe("disable unhandled request", function(config) { config.beforeEach(function() { - this.pretender = new Pretender({ disableUnhandled: true}); + this.pretender = new Pretender({ disableUnhandled: true }); }); config.afterEach(function() { this.pretender.shutdown(); }); - it('does not add unhandledRequest', function(assert) { - $.ajax({ url: 'not-defined' }); + it("does not add unhandledRequest", function(assert) { + $.ajax({ url: "not-defined" }); var req = this.pretender.unhandledRequests; assert.equal(req.length, 0); diff --git a/test/error_handler_test.js b/test/error_handler_test.js index 7197b93..beb6730 100644 --- a/test/error_handler_test.js +++ b/test/error_handler_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('pretender errored requests', function(config) { +describe("pretender errored requests", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -10,15 +10,15 @@ describe('pretender errored requests', function(config) { this.pretender.shutdown(); }); - it('calls erroredRequest', function(assert) { - this.pretender.get('/some/path', function() { - throw new Error('something in this handler broke!'); + it("calls erroredRequest", function(assert) { + this.pretender.get("/some/path", function() { + throw new Error("something in this handler broke!"); }); this.pretender.erroredRequest = function(verb, path, request, error) { assert.ok(error); }; - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); }); }); diff --git a/test/fetch_test.js b/test/fetch_test.js index 5b2414a..281fb4f 100644 --- a/test/fetch_test.js +++ b/test/fetch_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('pretender invoking by fetch', function(config) { +describe("pretender invoking by fetch", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -10,65 +10,65 @@ describe('pretender invoking by fetch', function(config) { this.pretender.shutdown(); }); - it('fetch triggers pretender', function(assert) { + it("fetch triggers pretender", function(assert) { assert.expect(1); var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; - return [200, {}, '']; + return [200, {}, ""]; }); - var wait = fetch('/some/path'); + var wait = fetch("/some/path"); assert.ok(wasCalled); return wait; }); - it('is resolved asynchronously', function(assert) { + it("is resolved asynchronously", function(assert) { assert.expect(2); - var val = 'unset'; + var val = "unset"; - this.pretender.get('/some/path', function() { - return [200, {}, '']; + this.pretender.get("/some/path", function() { + return [200, {}, ""]; }); - var wait = fetch('/some/path').then(function() { - assert.equal(val, 'set'); + var wait = fetch("/some/path").then(function() { + assert.equal(val, "set"); }); - assert.equal(val, 'unset'); - val = 'set'; + assert.equal(val, "unset"); + val = "set"; return wait; }); - it('can NOT be resolved synchronously', function(assert) { + it("can NOT be resolved synchronously", function(assert) { assert.expect(2); - var val = 'unset'; + var val = "unset"; this.pretender.get( - '/some/path', + "/some/path", function() { - return [200, {}, '']; + return [200, {}, ""]; }, false ); // This is async even we specified pretender get to be synchronised - var wait = fetch('/some/path').then(function() { - assert.equal(val, 'set'); + var wait = fetch("/some/path").then(function() { + assert.equal(val, "set"); }); - assert.equal(val, 'unset'); - val = 'set'; + assert.equal(val, "unset"); + val = "set"; return wait; }); - it('has Abortable fetch', function(assert) { + it("has Abortable fetch", function(assert) { assert.expect(1); this.pretender.get( - '/downloads', + "/downloads", function(/*request*/) { - return [200, {}, 'FAIL']; + return [200, {}, "FAIL"]; }, 200 ); @@ -79,9 +79,8 @@ describe('pretender invoking by fetch', function(config) { controller.abort(); }, 10); - return fetch('/downloads', { signal: signal }) - .catch(function(err) { - assert.equal(err.name, 'AbortError'); - }); + return fetch("/downloads", { signal: signal }).catch(function(err) { + assert.equal(err.name, "AbortError"); + }); }); }); diff --git a/test/force_passthrough_test.js b/test/force_passthrough_test.js index 6245f92..116f1ed 100644 --- a/test/force_passthrough_test.js +++ b/test/force_passthrough_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('passthrough requests', function(config) { +describe("passthrough requests", function(config) { config.beforeEach(function() { this.pretender = new Pretender({ forcePassthrough: true }); }); @@ -10,18 +10,18 @@ describe('passthrough requests', function(config) { this.pretender.shutdown(); }); - it('passthrough request when forcePassthrough is true', function(assert) { + it("passthrough request when forcePassthrough is true", function(assert) { var done = assert.async(); var passthroughInvoked = false; - this.pretender.passthroughRequest = function(verb, path/*, request*/) { + this.pretender.passthroughRequest = function(verb, path /*, request*/) { passthroughInvoked = true; - assert.equal(verb, 'GET'); - assert.equal(path, '/some/path'); + assert.equal(verb, "GET"); + assert.equal(path, "/some/path"); }; $.ajax({ - url: '/some/path', + url: "/some/path", error: function(xhr) { assert.equal(xhr.status, 404); assert.ok(passthroughInvoked); @@ -30,15 +30,15 @@ describe('passthrough requests', function(config) { }); }); - it('unhandle request when forcePassthrough is false', function(assert) { + it("unhandle request when forcePassthrough is false", function(assert) { var pretender = this.pretender; pretender.forcePassthrough = false; - this.pretender.unhandledRequest = function(verb, path/*, request*/) { - assert.equal(verb, 'GET'); - assert.equal(path, '/some/path'); + this.pretender.unhandledRequest = function(verb, path /*, request*/) { + assert.equal(verb, "GET"); + assert.equal(path, "/some/path"); }; - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); }); }); diff --git a/test/handler_test.js b/test/handler_test.js index b76d084..8f4b52c 100644 --- a/test/handler_test.js +++ b/test/handler_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('pretender adding a handler', function(config) { +describe("pretender adding a handler", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -10,85 +10,85 @@ describe('pretender adding a handler', function(config) { this.pretender.shutdown(); }); - it('a handler is returned', function(assert) { - var handler = this.pretender.get('/some/path', function() {}); + it("a handler is returned", function(assert) { + var handler = this.pretender.get("/some/path", function() {}); assert.ok(handler); }); - it('.get registers a handler for GET', function(assert) { + it(".get registers a handler for GET", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); }); - it('.post registers a handler for POST', function(assert) { + it(".post registers a handler for POST", function(assert) { var wasCalled; - this.pretender.post('/some/path', function() { + this.pretender.post("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'post' }); + $.ajax({ url: "/some/path", method: "post" }); assert.ok(wasCalled); }); - it('.patch registers a handler for PATCH', function(assert) { + it(".patch registers a handler for PATCH", function(assert) { var wasCalled; - this.pretender.patch('/some/path', function() { + this.pretender.patch("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'patch' }); + $.ajax({ url: "/some/path", method: "patch" }); assert.ok(wasCalled); }); - it('.delete registers a handler for DELETE', function(assert) { + it(".delete registers a handler for DELETE", function(assert) { var wasCalled; - this.pretender.delete('/some/path', function() { + this.pretender.delete("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'delete' }); + $.ajax({ url: "/some/path", method: "delete" }); assert.ok(wasCalled); }); - it('.options registers a handler for OPTIONS', function(assert) { + it(".options registers a handler for OPTIONS", function(assert) { var wasCalled; - this.pretender.options('/some/path', function() { + this.pretender.options("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'options' }); + $.ajax({ url: "/some/path", method: "options" }); assert.ok(wasCalled); }); - it('.put registers a handler for PUT', function(assert) { + it(".put registers a handler for PUT", function(assert) { var wasCalled; - this.pretender.put('/some/path', function() { + this.pretender.put("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'put' }); + $.ajax({ url: "/some/path", method: "put" }); assert.ok(wasCalled); }); - it('.head registers a handler for HEAD', function(assert) { + it(".head registers a handler for HEAD", function(assert) { var wasCalled; - this.pretender.head('/some/path', function() { + this.pretender.head("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path', method: 'head' }); + $.ajax({ url: "/some/path", method: "head" }); assert.ok(wasCalled); }); }); diff --git a/test/hosts_test.js b/test/hosts_test.js index b4553a6..9ea51b6 100644 --- a/test/hosts_test.js +++ b/test/hosts_test.js @@ -2,7 +2,7 @@ var hosts; var describe = QUnit.module; var it = QUnit.test; -describe('Hosts', function(config) { +describe("Hosts", function(config) { config.beforeEach(function() { hosts = new Pretender.Hosts(); }); @@ -11,31 +11,29 @@ describe('Hosts', function(config) { hosts = undefined; }); - describe('#forURL', function() { - it('returns a registry for a URL', function(assert) { - assert.ok(hosts.forURL('http://www.groupon.com/offers/skydiving')); + describe("#forURL", function() { + it("returns a registry for a URL", function(assert) { + assert.ok(hosts.forURL("http://www.groupon.com/offers/skydiving")); }); - it('returns a registry for a relative path', function(assert) { - assert.ok(hosts.forURL('/offers/skydiving')); + it("returns a registry for a relative path", function(assert) { + assert.ok(hosts.forURL("/offers/skydiving")); }); - it('returns different Registry objects for different hosts ', function( - assert - ) { - var registry1 = hosts.forURL('/offers/dinner_out'); - var registry2 = hosts.forURL('http://www.yahoo.com/offers/dinner_out'); + it("returns different Registry objects for different hosts ", function(assert) { + var registry1 = hosts.forURL("/offers/dinner_out"); + var registry2 = hosts.forURL("http://www.yahoo.com/offers/dinner_out"); registry1.GET.add({ - path: 'http://www.yahoo.com/offers/dinner_out', + path: "http://www.yahoo.com/offers/dinner_out", handler: function() { - return [200, {}, 'ok']; - }, + return [200, {}, "ok"]; + } }); assert.ok( - !registry2.GET.recognize('http://www.yahoo.com/offers/dinner_out') + !registry2.GET.recognize("http://www.yahoo.com/offers/dinner_out") ); assert.ok( - !registry1.GET.recognize('http://www.yahoo.com/offers/dinner_out') + !registry1.GET.recognize("http://www.yahoo.com/offers/dinner_out") ); }); }); diff --git a/test/passthrough_test.js b/test/passthrough_test.js index 5734ee5..f5f67a6 100644 --- a/test/passthrough_test.js +++ b/test/passthrough_test.js @@ -2,7 +2,7 @@ var originalXMLHttpRequest; var describe = QUnit.module; var it = QUnit.test; -describe('passthrough requests', function(config) { +describe("passthrough requests", function(config) { config.beforeEach(function() { originalXMLHttpRequest = window.XMLHttpRequest; this.pretender = new Pretender(); @@ -13,40 +13,40 @@ describe('passthrough requests', function(config) { window.XMLHttpRequest = originalXMLHttpRequest; }); - it('allows matched paths to be pass-through', function(assert) { + it("allows matched paths to be pass-through", function(assert) { var pretender = this.pretender; var done = assert.async(); - pretender.post('/some/:route', pretender.passthrough); + pretender.post("/some/:route", pretender.passthrough); var passthroughInvoked = false; pretender.passthroughRequest = function(verb, path, request) { passthroughInvoked = true; - assert.equal(verb, 'POST'); - assert.equal(path, '/some/path'); - assert.equal(request.requestBody, 'some=data'); + assert.equal(verb, "POST"); + assert.equal(path, "/some/path"); + assert.equal(request.requestBody, "some=data"); }; $.ajax({ - url: '/some/path', - method: 'POST', + url: "/some/path", + method: "POST", headers: { - 'test-header': 'value', + "test-header": "value" }, data: { - some: 'data', + some: "data" }, error: function(xhr) { assert.equal(xhr.status, 404); assert.ok(passthroughInvoked); done(); - }, + } }); }); it( - 'asynchronous request with pass-through has timeout,' + - 'withCredentials and onprogress event', + "asynchronous request with pass-through has timeout," + + "withCredentials and onprogress event", function(assert) { var pretender = this.pretender; var done = assert.async(); @@ -58,30 +58,30 @@ describe('passthrough requests', function(config) { this.upload = {}; this.send = { pretender: pretender, - apply: function(xhr/*, argument*/) { - assert.ok('timeout' in xhr); - assert.ok('withCredentials' in xhr); - assert.ok('onprogress' in xhr); + apply: function(xhr /*, argument*/) { + assert.ok("timeout" in xhr); + assert.ok("withCredentials" in xhr); + assert.ok("onprogress" in xhr); this.pretender.resolve(xhr); done(); - }, + } }; } pretender._nativeXMLHttpRequest = testXHR; - pretender.post('/some/path', pretender.passthrough); + pretender.post("/some/path", pretender.passthrough); var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/some/path'); + xhr.open("POST", "/some/path"); xhr.timeout = 1000; xhr.withCredentials = true; - xhr.send('some data'); + xhr.send("some data"); } ); it( - 'asynchronous request with pass-through and ' + - 'arraybuffer as responseType', + "asynchronous request with pass-through and " + + "arraybuffer as responseType", function(assert) { var pretender = this.pretender; var done = assert.async(); @@ -91,30 +91,28 @@ describe('passthrough requests', function(config) { this.open = function() {}; this.setRequestHeader = function() {}; this.upload = {}; - this.responseType = ''; + this.responseType = ""; this.send = { pretender: pretender, - apply: function(xhr/*, argument*/) { - assert.equal(xhr.responseType, 'arraybuffer'); + apply: function(xhr /*, argument*/) { + assert.equal(xhr.responseType, "arraybuffer"); this.pretender.resolve(xhr); done(); - }, + } }; } pretender._nativeXMLHttpRequest = testXHR; - pretender.get('/some/path', pretender.passthrough); + pretender.get("/some/path", pretender.passthrough); var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/some/path'); - xhr.responseType = 'arraybuffer'; + xhr.open("GET", "/some/path"); + xhr.responseType = "arraybuffer"; xhr.send(); } ); - it('synchronous request does not have timeout, withCredentials and onprogress event', function( - assert - ) { + it("synchronous request does not have timeout, withCredentials and onprogress event", function(assert) { var pretender = this.pretender; var done = assert.async(); @@ -124,49 +122,49 @@ describe('passthrough requests', function(config) { this.upload = {}; this.send = { pretender: pretender, - apply: function(xhr/*, argument*/) { - assert.ok(!('timeout' in xhr)); - assert.ok(!('withCredentials' in xhr)); - assert.ok(!('onprogress' in xhr)); + apply: function(xhr /*, argument*/) { + assert.ok(!("timeout" in xhr)); + assert.ok(!("withCredentials" in xhr)); + assert.ok(!("onprogress" in xhr)); this.pretender.resolve(xhr); done(); - }, + } }; } pretender._nativeXMLHttpRequest = testXHR; - pretender.post('/some/path', pretender.passthrough); + pretender.post("/some/path", pretender.passthrough); var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/some/path', false); + xhr.open("POST", "/some/path", false); xhr.timeout = 1000; xhr.withCredentials = true; - xhr.send('some data'); + xhr.send("some data"); }); - it('asynchronous request fires events', function(assert) { + it("asynchronous request fires events", function(assert) { assert.expect(6); var pretender = this.pretender; var done = assert.async(); - pretender.post('/some/:route', pretender.passthrough); + pretender.post("/some/:route", pretender.passthrough); var onEvents = { load: false, progress: false, - readystatechange: false, + readystatechange: false }; var listenerEvents = { load: false, progress: false, - readystatechange: false, + readystatechange: false }; var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/some/otherpath'); + xhr.open("POST", "/some/otherpath"); - xhr.addEventListener('progress', function _progress() { + xhr.addEventListener("progress", function _progress() { listenerEvents.progress = true; }); @@ -174,7 +172,7 @@ describe('passthrough requests', function(config) { onEvents.progress = true; }; - xhr.addEventListener('load', function _load() { + xhr.addEventListener("load", function _load() { listenerEvents.load = true; finishNext(); }); @@ -184,7 +182,7 @@ describe('passthrough requests', function(config) { finishNext(); }; - xhr.addEventListener('readystatechange', function _load() { + xhr.addEventListener("readystatechange", function _load() { if (xhr.readyState == 4) { listenerEvents.readystatechange = true; finishNext(); @@ -211,15 +209,15 @@ describe('passthrough requests', function(config) { if (!finished) { finished = true; - assert.ok(onEvents.load, 'onload called'); - assert.ok(onEvents.progress, 'onprogress called'); - assert.ok(onEvents.readystatechange, 'onreadystate called'); + assert.ok(onEvents.load, "onload called"); + assert.ok(onEvents.progress, "onprogress called"); + assert.ok(onEvents.readystatechange, "onreadystate called"); - assert.ok(listenerEvents.load, 'load listener called'); - assert.ok(listenerEvents.progress, 'progress listener called'); + assert.ok(listenerEvents.load, "load listener called"); + assert.ok(listenerEvents.progress, "progress listener called"); assert.ok( listenerEvents.readystatechange, - 'readystate listener called' + "readystate listener called" ); done(); @@ -227,25 +225,25 @@ describe('passthrough requests', function(config) { } }); - it('asynchronous request fires upload progress events', function(assert) { + it("asynchronous request fires upload progress events", function(assert) { assert.expect(2); var pretender = this.pretender; var done = assert.async(); - pretender.post('/some/:route', pretender.passthrough); + pretender.post("/some/:route", pretender.passthrough); var onEvents = { - progress: false, + progress: false }; var listenerEvents = { - progress: false, + progress: false }; var xhr = new window.XMLHttpRequest(); - xhr.open('POST', '/some/otherpath'); + xhr.open("POST", "/some/otherpath"); - xhr.upload.addEventListener('progress', function _progress() { + xhr.upload.addEventListener("progress", function _progress() { listenerEvents.progress = true; }); @@ -257,11 +255,11 @@ describe('passthrough requests', function(config) { setTimeout(finish, 1); }; - xhr.send('some data'); + xhr.send("some data"); // ensure the test ends var failTimer = setTimeout(function() { - assert.ok(false, 'test timed out'); + assert.ok(false, "test timed out"); done(); }, 500); @@ -270,17 +268,15 @@ describe('passthrough requests', function(config) { if (!finished) { finished = true; clearTimeout(failTimer); - assert.ok(onEvents.progress, 'onprogress called'); - assert.ok(listenerEvents.progress, 'progress listener called'); + assert.ok(onEvents.progress, "onprogress called"); + assert.ok(listenerEvents.progress, "progress listener called"); done(); } } }); - it('asynchronous request with pass-through and empty response', function( - assert - ) { + it("asynchronous request with pass-through and empty response", function(assert) { var done = assert.async(); var pretender = this.pretender; @@ -288,32 +284,32 @@ describe('passthrough requests', function(config) { this.pretender = pretender; this.open = function() {}; this.setRequestHeader = function() {}; - this.responseText = ''; - this.response = ''; + this.responseText = ""; + this.response = ""; this.onload = true; this.send = { pretender: pretender, - apply: function(xhr/*, argument*/) { - xhr.onload({ target: xhr, type: 'load' }); - }, + apply: function(xhr /*, argument*/) { + xhr.onload({ target: xhr, type: "load" }); + } }; } pretender._nativeXMLHttpRequest = testXHR; - pretender.get('/some/path', pretender.passthrough); + pretender.get("/some/path", pretender.passthrough); var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/some/path'); - xhr.addEventListener('load', function _onload(event) { + xhr.open("GET", "/some/path"); + xhr.addEventListener("load", function _onload(event) { assert.equal( xhr.responseText, event.target.responseText, - 'responseText for real and fake xhr are both blank strings' + "responseText for real and fake xhr are both blank strings" ); assert.equal( xhr.response, event.target.response, - 'response for real and fake xhr are both blank strings' + "response for real and fake xhr are both blank strings" ); done(); }); @@ -321,8 +317,8 @@ describe('passthrough requests', function(config) { xhr.send(); }); - describe('the `.passthrough()` property', function () { - it('allows a passthrough on an unhandledRequest', function(assert) { + describe("the `.passthrough()` property", function() { + it("allows a passthrough on an unhandledRequest", function(assert) { var done = assert.async(); this.pretender.unhandledRequest = function(_verb, _path, request) { @@ -330,7 +326,7 @@ describe('passthrough requests', function(config) { }; $.ajax({ - url: '/some/path', + url: "/some/path", error: function(xhr) { assert.equal(xhr.status, 404); done(); @@ -338,7 +334,7 @@ describe('passthrough requests', function(config) { }); }); - it('returns a native xhr', function(assert) { + it("returns a native xhr", function(assert) { var done = assert.async(); var pretender = this.pretender; @@ -347,20 +343,20 @@ describe('passthrough requests', function(config) { this.pretender = pretender; this.open = function() {}; this.setRequestHeader = function() {}; - this.responseText = ''; - this.response = ''; + this.responseText = ""; + this.response = ""; this.onload = true; this.send = { pretender: pretender, - apply: function(xhr/*, argument*/) { - xhr.onload({ target: xhr, type: 'load' }); - }, + apply: function(xhr /*, argument*/) { + xhr.onload({ target: xhr, type: "load" }); + } }; } pretender._nativeXMLHttpRequest = testXHR; var xhr = new window.XMLHttpRequest(); - xhr.open('GET', '/some/path'); + xhr.open("GET", "/some/path"); this.pretender.unhandledRequest = function(_verb, _path, request) { var referencedXhr = request.passthrough(); @@ -370,6 +366,5 @@ describe('passthrough requests', function(config) { xhr.send(); }); - }); }); diff --git a/test/registry_test.js b/test/registry_test.js index 69438b2..01f18f3 100644 --- a/test/registry_test.js +++ b/test/registry_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('Registry', function(config) { +describe("Registry", function(config) { config.beforeEach(function() { this.registry = new Pretender.Registry(); }); @@ -10,10 +10,10 @@ describe('Registry', function(config) { assert.ok(this.registry.verbs); }); - it('supports all HTTP verbs', function(assert) { - var verbs = ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']; + it("supports all HTTP verbs", function(assert) { + var verbs = ["GET", "PUT", "POST", "PATCH", "DELETE", "OPTIONS", "HEAD"]; for (var v = 0; v < verbs.length; v++) { - assert.ok(this.registry.verbs[verbs[v]], 'supports ' + verbs[v]); + assert.ok(this.registry.verbs[verbs[v]], "supports " + verbs[v]); } }); }); diff --git a/test/requests_stored_test.js b/test/requests_stored_test.js index 0c3d301..09cef38 100644 --- a/test/requests_stored_test.js +++ b/test/requests_stored_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('pretender', function(config) { +describe("pretender", function(config) { config.beforeEach(function() { this.pretender = new Pretender({ trackRequests: false }); }); @@ -10,14 +10,14 @@ describe('pretender', function(config) { this.pretender.shutdown(); }); - it('does not track handled requests', function(assert) { + it("does not track handled requests", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); assert.equal(this.pretender.handledRequests.length, 0); @@ -25,14 +25,14 @@ describe('pretender', function(config) { assert.equal(this.pretender.passthroughRequests.length, 0); }); - it('does not track unhandled requests requests', function(assert) { + it("does not track unhandled requests requests", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/very/good' }); + $.ajax({ url: "/very/good" }); assert.notOk(wasCalled); assert.equal(this.pretender.handledRequests.length, 0); @@ -40,16 +40,16 @@ describe('pretender', function(config) { assert.equal(this.pretender.passthroughRequests.length, 0); }); - it('does not track passthrough requests requests', function(assert) { + it("does not track passthrough requests requests", function(assert) { var wasCalled; this.pretender.passthrough = function() { wasCalled = true; }; - this.pretender.get('/some/path', this.pretender.passthrough); + this.pretender.get("/some/path", this.pretender.passthrough); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); assert.equal(this.pretender.handledRequests.length, 0); @@ -58,7 +58,7 @@ describe('pretender', function(config) { }); }); -describe('pretender', function(config) { +describe("pretender", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -67,14 +67,14 @@ describe('pretender', function(config) { this.pretender.shutdown(); }); - it('tracks handled requests', function(assert) { + it("tracks handled requests", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); assert.equal(this.pretender.handledRequests.length, 1); @@ -82,14 +82,14 @@ describe('pretender', function(config) { assert.equal(this.pretender.passthroughRequests.length, 0); }); - it('tracks unhandled requests requests', function(assert) { + it("tracks unhandled requests requests", function(assert) { var wasCalled; - this.pretender.get('/some/path', function() { + this.pretender.get("/some/path", function() { wasCalled = true; }); - $.ajax({ url: '/very/good' }); + $.ajax({ url: "/very/good" }); assert.notOk(wasCalled); assert.equal(this.pretender.handledRequests.length, 0); @@ -97,16 +97,16 @@ describe('pretender', function(config) { assert.equal(this.pretender.passthroughRequests.length, 0); }); - it('tracks passthrough requests requests', function(assert) { + it("tracks passthrough requests requests", function(assert) { var wasCalled; this.pretender.passthroughRequest = function() { wasCalled = true; }; - this.pretender.get('/some/path', this.pretender.passthrough); + this.pretender.get("/some/path", this.pretender.passthrough); - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); assert.ok(wasCalled); assert.equal(this.pretender.handledRequests.length, 0); diff --git a/test/shutdown_test.js b/test/shutdown_test.js index 1a3a3df..f405678 100644 --- a/test/shutdown_test.js +++ b/test/shutdown_test.js @@ -2,7 +2,7 @@ var nativeXMLHttpRequest; var describe = QUnit.module; var it = QUnit.test; -describe('pretender shutdown', function(config) { +describe("pretender shutdown", function(config) { config.beforeEach(function() { nativeXMLHttpRequest = window.XMLHttpRequest; }); @@ -11,7 +11,7 @@ describe('pretender shutdown', function(config) { nativeXMLHttpRequest = null; }); - it('restores the native XMLHttpRequest object', function(assert) { + it("restores the native XMLHttpRequest object", function(assert) { var pretender = new Pretender(); assert.notEqual(window.XMLHttpRequest, nativeXMLHttpRequest); @@ -19,7 +19,7 @@ describe('pretender shutdown', function(config) { assert.equal(window.XMLHttpRequest, nativeXMLHttpRequest); }); - it('warns if requests attempt to respond after shutdown', function(assert) { + it("warns if requests attempt to respond after shutdown", function(assert) { var pretender = new Pretender(); var request = new XMLHttpRequest(); pretender.shutdown(); diff --git a/test/undefined_response_test.js b/test/undefined_response_test.js index c8ecae2..e95039c 100644 --- a/test/undefined_response_test.js +++ b/test/undefined_response_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('retruning an undefined response', function(config) { +describe("retruning an undefined response", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -9,20 +9,20 @@ describe('retruning an undefined response', function(config) { this.pretender.shutdown(); }); - it('calls erroredRequest callback', function(assert) { - this.pretender.get('/some/path', function() { + it("calls erroredRequest callback", function(assert) { + this.pretender.get("/some/path", function() { // return nothing }); this.pretender.erroredRequest = function(verb, path, request, error) { var message = - 'Nothing returned by handler for ' + + "Nothing returned by handler for " + path + - '. ' + - 'Remember to `return [status, headers, body];` in your route handler.'; + ". " + + "Remember to `return [status, headers, body];` in your route handler."; assert.equal(error.message, message); }; - $.ajax({ url: '/some/path' }); + $.ajax({ url: "/some/path" }); }); }); diff --git a/test/undefined_route_test.js b/test/undefined_route_test.js index f50c580..d16b726 100644 --- a/test/undefined_route_test.js +++ b/test/undefined_route_test.js @@ -1,7 +1,7 @@ var describe = QUnit.module; var it = QUnit.test; -describe('route not defined', function(config) { +describe("route not defined", function(config) { config.beforeEach(function() { this.pretender = new Pretender(); }); @@ -9,35 +9,33 @@ describe('route not defined', function(config) { this.pretender.shutdown(); }); - it('calls unhandledRequest', function(assert) { + it("calls unhandledRequest", function(assert) { this.pretender.unhandledRequest = function(verb, path) { - assert.equal('GET', verb); - assert.equal('not-defined', path); + assert.equal("GET", verb); + assert.equal("not-defined", path); assert.ok(true); }; $.ajax({ - url: 'not-defined', + url: "not-defined" }); }); - it('errors by default', function(assert) { + it("errors by default", function(assert) { var pretender = this.pretender; - var verb = 'GET'; - var path = '/foo/bar'; + var verb = "GET"; + var path = "/foo/bar"; assert.throws(function() { pretender.unhandledRequest(verb, path); - }, 'Pretender intercepted GET /foo/bar but no handler was defined for this type of request'); + }, "Pretender intercepted GET /foo/bar but no handler was defined for this type of request"); }); - it('adds the request to the array of unhandled requests by default', function( - assert - ) { + it("adds the request to the array of unhandled requests by default", function(assert) { $.ajax({ - url: 'not-defined', + url: "not-defined" }); var req = this.pretender.unhandledRequests[0]; - assert.equal(req.url, 'not-defined'); + assert.equal(req.url, "not-defined"); }); }); diff --git a/test/url_parsing_test.js b/test/url_parsing_test.js index 7517385..058eba3 100644 --- a/test/url_parsing_test.js +++ b/test/url_parsing_test.js @@ -1,15 +1,13 @@ var describe = QUnit.module; var it = QUnit.test; -describe('parseURL', function() { +describe("parseURL", function() { var parseURL = Pretender.parseURL; function testUrl(url, expectedParts) { - it('pathname, fullpath, protocol, hash and search are correct', function( - assert - ) { + it("pathname, fullpath, protocol, hash and search are correct", function(assert) { var parts = parseURL(url); - assert.ok(parts, 'Parts exist'); + assert.ok(parts, "Parts exist"); assert.equal( parts.protocol, @@ -44,42 +42,42 @@ describe('parseURL', function() { }); } - describe('relative HTTP URLs', function() { - testUrl('/mock/my/request?test=abc#def', { - protocol: 'http:', - pathname: '/mock/my/request', + describe("relative HTTP URLs", function() { + testUrl("/mock/my/request?test=abc#def", { + protocol: "http:", + pathname: "/mock/my/request", host: window.location.host, - search: '?test=abc', - hash: '#def', - fullpath: '/mock/my/request?test=abc#def', + search: "?test=abc", + hash: "#def", + fullpath: "/mock/my/request?test=abc#def" }); }); - describe('same-origin absolute HTTP URLs', function() { + describe("same-origin absolute HTTP URLs", function() { testUrl( window.location.protocol + - '//' + + "//" + window.location.host + - '/mock/my/request?test=abc#def', + "/mock/my/request?test=abc#def", { protocol: window.location.protocol, - pathname: '/mock/my/request', + pathname: "/mock/my/request", host: window.location.host, - search: '?test=abc', - hash: '#def', - fullpath: '/mock/my/request?test=abc#def', + search: "?test=abc", + hash: "#def", + fullpath: "/mock/my/request?test=abc#def" } ); }); - describe('cross-origin absolute HTTP URLs', function() { - testUrl('https://www.yahoo.com/mock/my/request?test=abc', { - protocol: 'https:', - pathname: '/mock/my/request', - host: 'www.yahoo.com', - search: '?test=abc', - hash: '', - fullpath: '/mock/my/request?test=abc', + describe("cross-origin absolute HTTP URLs", function() { + testUrl("https://www.yahoo.com/mock/my/request?test=abc", { + protocol: "https:", + pathname: "/mock/my/request", + host: "www.yahoo.com", + search: "?test=abc", + hash: "", + fullpath: "/mock/my/request?test=abc" }); }); }); diff --git a/yarn.lock b/yarn.lock index 815b00f..ef3fa7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4094,6 +4094,11 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +prettier@1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"