diff --git a/packages/ember-data/lib/adapters/build-url-mixin.js b/packages/ember-data/lib/adapters/build-url-mixin.js index 7f1868bd96a..93e0d2901fa 100644 --- a/packages/ember-data/lib/adapters/build-url-mixin.js +++ b/packages/ember-data/lib/adapters/build-url-mixin.js @@ -64,6 +64,8 @@ export default Ember.Mixin.create({ return this.urlForFindBelongsTo(id, type); case 'createRecord': return this.urlForCreateRecord(type, snapshot); + case 'updateRecord': + return this.urlForUpdateRecord(id, type, snapshot); case 'deleteRecord': return this.urlForDeleteRecord(id, type, snapshot); default: @@ -171,6 +173,17 @@ export default Ember.Mixin.create({ return this._buildURL(type); }, + /** + * @method urlForUpdateRecord + * @param {String} id + * @param {String} type + * @param {DS.Snapshot} snapshot + * @return {String} url + */ + urlForUpdateRecord: function(id, type, snapshot) { + return this._buildURL(type, id); + }, + /** * @method urlForDeleteRecord * @param {String} id diff --git a/packages/ember-data/tests/unit/adapters/build-url-mixin/path-for-type-test.js b/packages/ember-data/tests/unit/adapters/build-url-mixin/path-for-type-test.js index fcf068d8946..421b1967002 100644 --- a/packages/ember-data/tests/unit/adapters/build-url-mixin/path-for-type-test.js +++ b/packages/ember-data/tests/unit/adapters/build-url-mixin/path-for-type-test.js @@ -106,7 +106,7 @@ test('buildURL - findBelongsTo requestType delegates to urlForFindBelongsTo', fu equal(adapter.buildURL('super-user', 1, null, 'findBelongsTo'), '/superUsers/1'); }); -test('buildURL - createRecord requestType delegates to urlForFindBelongsTo', function() { +test('buildURL - createRecord requestType delegates to urlForCreateRecord', function() { expect(3); var snapshotStub = { snapshot: true }; var originalMethod = adapter.urlForCreateRecord; @@ -118,6 +118,19 @@ test('buildURL - createRecord requestType delegates to urlForFindBelongsTo', fun equal(adapter.buildURL('super-user', null, snapshotStub, 'createRecord'), '/superUsers'); }); +test('buildURL - updateRecord requestType delegates to urlForUpdateRecord', function() { + expect(4); + var snapshotStub = { snapshot: true }; + var originalMethod = adapter.urlForUpdateRecord; + adapter.urlForUpdateRecord = function(id, type, snapshot) { + equal(id, 1); + equal(type, 'super-user'); + equal(snapshot, snapshotStub); + return originalMethod.apply(this, arguments); + }; + equal(adapter.buildURL('super-user', 1, snapshotStub, 'updateRecord'), '/superUsers/1'); +}); + test('buildURL - deleteRecord requestType delegates to urlForDeleteRecord', function() { expect(4); var snapshotStub = { snapshot: true };