@@ -2,6 +2,7 @@ import { module, test } from 'qunit';
22import { setupTest } from 'ember-qunit' ;
33import { apiAction } from '@mainmatter/ember-api-actions' ;
44import { ServerError } from '@ember-data/adapter/error' ;
5+ import RESTAdapter from '@ember-data/adapter/rest' ;
56
67module ( 'customAction()' , function ( hooks ) {
78 setupTest ( hooks ) ;
@@ -62,4 +63,29 @@ module('customAction()', function (hooks) {
6263 ServerError
6364 ) ;
6465 } ) ;
66+
67+ test ( 'buildURL() can use the snapshot parameter' , async function ( assert ) {
68+ class UserAdapter extends RESTAdapter {
69+ buildURL ( modelName , id , snapshot , requestType ) {
70+ if ( requestType === 'updateRecord' ) {
71+ return `/users/${ snapshot . record . name } ` ;
72+ } else {
73+ return super . buildURL ( ...arguments ) ;
74+ }
75+ }
76+ }
77+
78+ this . owner . register ( 'adapter:user' , UserAdapter ) ;
79+
80+ let { worker, rest, user } = await prepare ( this ) ;
81+
82+ worker . use (
83+ rest . post ( '/users/rwjblue/like' , ( req , res , ctx ) => {
84+ return res ( ctx . json ( { custom : 'buildURL' } ) ) ;
85+ } )
86+ ) ;
87+
88+ let response = await apiAction ( user , { method : 'POST' , path : 'like' } ) ;
89+ assert . deepEqual ( response , { custom : 'buildURL' } ) ;
90+ } ) ;
6591} ) ;
0 commit comments