diff --git a/dist/amd/main.js b/dist/amd/main.js index 57c5d01..9e6a285 100644 --- a/dist/amd/main.js +++ b/dist/amd/main.js @@ -76,6 +76,9 @@ define( return new Ember.RSVP.Promise(function(resolve, reject) { var fixture = lookupFixture(settings.url); if (fixture) { + if (fixture.onSend) { + fixture.onSend(settings); + } if (fixture.textStatus === 'success' || fixture.textStatus == null) { return Ember.run.later(null, resolve, fixture); } else { diff --git a/dist/cjs/main.js b/dist/cjs/main.js index 4b6b7ef..91703fa 100644 --- a/dist/cjs/main.js +++ b/dist/cjs/main.js @@ -73,6 +73,9 @@ exports.lookupFixture = lookupFixture;function makePromise(settings) { return new Ember.RSVP.Promise(function(resolve, reject) { var fixture = lookupFixture(settings.url); if (fixture) { + if (fixture.onSend) { + fixture.onSend(settings); + } if (fixture.textStatus === 'success' || fixture.textStatus == null) { return Ember.run.later(null, resolve, fixture); } else { diff --git a/dist/globals/main.js b/dist/globals/main.js index 0489c46..a3fca39 100644 --- a/dist/globals/main.js +++ b/dist/globals/main.js @@ -74,6 +74,9 @@ exports.lookupFixture = lookupFixture;function makePromise(settings) { return new Ember.RSVP.Promise(function(resolve, reject) { var fixture = lookupFixture(settings.url); if (fixture) { + if (fixture.onSend) { + fixture.onSend(settings); + } if (fixture.textStatus === 'success' || fixture.textStatus == null) { return Ember.run.later(null, resolve, fixture); } else { diff --git a/dist/named-amd/main.js b/dist/named-amd/main.js index c928c76..778de67 100644 --- a/dist/named-amd/main.js +++ b/dist/named-amd/main.js @@ -76,6 +76,9 @@ define("ic-ajax", return new Ember.RSVP.Promise(function(resolve, reject) { var fixture = lookupFixture(settings.url); if (fixture) { + if (fixture.onSend) { + fixture.onSend(settings); + } if (fixture.textStatus === 'success' || fixture.textStatus == null) { return Ember.run.later(null, resolve, fixture); } else { diff --git a/karma.conf.js b/karma.conf.js index 9452e31..8d915b0 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -4,7 +4,7 @@ module.exports = function(config) { frameworks: ['qunit'], files: [ - 'bower_components/jquery/jquery.js', + 'bower_components/jquery/dist/jquery.js', 'bower_components/handlebars/handlebars.js', 'bower_components/ember/ember.js', 'bower_components/sinon/index.js', diff --git a/lib/main.js b/lib/main.js index 538d746..a397498 100644 --- a/lib/main.js +++ b/lib/main.js @@ -72,6 +72,9 @@ function makePromise(settings) { return new Ember.RSVP.Promise(function(resolve, reject) { var fixture = lookupFixture(settings.url); if (fixture) { + if (fixture.onSend) { + fixture.onSend(settings); + } if (fixture.textStatus === 'success' || fixture.textStatus == null) { return Ember.run.later(null, resolve, fixture); } else { diff --git a/package.json b/package.json index c988c00..2489737 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "karma-html2js-preprocessor": "^0.1.0", "karma-qunit": "^0.1.1", "karma-script-launcher": "^0.1.0", - "qunitjs": "~1.12.0", + "qunitjs": "~1.14.0", "bower": "^1.3.5", "rf-release": "^0.1.0", "broccoli-cli": "0.0.1", @@ -36,4 +36,4 @@ }, "homepage": "https://github.com/instructure/ic-ajax", "dependencies": {} -} \ No newline at end of file +} diff --git a/test/main.spec.js b/test/main.spec.js index c32c9fe..c6f7b24 100644 --- a/test/main.spec.js +++ b/test/main.spec.js @@ -106,6 +106,38 @@ asyncTest('the fixture jqXHR survives the response copy', function() { ) }); +asyncTest('adds onSend callback option to inspect xhr settings', function() { + + var xhrRequests = []; + + ic.ajax.defineFixture('/post', { + response: {}, + textStatus: 'success', + jqXHR: {}, + onSend: function(settings) { + xhrRequests.push(settings); + } + }); + + var req = { + type: "POST", + contentType: "application/json", + dataType: "json", + url: "/post", + data: JSON.stringify({ + foo: "bar" + }) + }; + + Ember.RSVP.all([ic.ajax.request(req), ic.ajax.request(req)]) + .then(function() { + start(); + equal(xhrRequests.length, 2); + var payload = JSON.parse(xhrRequests[0].data); + equal(payload.foo, "bar"); + }); +}); + test('throws if success or error callbacks are used', function() { var k = function() {}; throws(function() {