@@ -203,6 +203,53 @@ describe("Many to many relationships", () => {
203203
204204validateRelationState ( ) ;
205205} ) ;
206+
207+ it ( "deletes with custom field name" , ( ) => {
208+ const Apple = class extends Model { } ;
209+ Apple . modelName = "Apple" ;
210+ Apple . fields = {
211+ id :attr ( ) ,
212+ comparableIds :many ( {
213+ to :"Orange" ,
214+ as :"comparables" ,
215+ relatedName :"comparableIds" ,
216+ } ) ,
217+ } ;
218+
219+ const Orange = class extends Model { } ;
220+ Orange . modelName = "Orange" ;
221+ Orange . fields = {
222+ id :attr ( ) ,
223+ } ;
224+
225+ orm = new ORM ( ) ;
226+ orm . register ( Apple , Orange ) ;
227+ session = orm . session ( ) ;
228+ expect ( session . Apple . count ( ) ) . toBe ( 0 ) ;
229+ expect ( session . Orange . count ( ) ) . toBe ( 0 ) ;
230+
231+ session . Apple . create ( { id :"a0" , comparableIds :[ ] } ) ;
232+ session . Orange . create ( { id :"o0" } ) ;
233+
234+ expect ( session . Apple . count ( ) ) . toBe ( 1 ) ;
235+ session . Apple . first ( ) . delete ( ) ;
236+ expect ( session . Apple . count ( ) ) . toBe ( 0 ) ;
237+
238+ expect ( session . Orange . count ( ) ) . toBe ( 1 ) ;
239+ session . Orange . first ( ) . delete ( ) ;
240+ expect ( session . Orange . count ( ) ) . toBe ( 0 ) ;
241+
242+ session . Apple . create ( { id :"a0" , comparableIds :[ "o0" ] } ) ;
243+ session . Orange . create ( { id :"o0" , comparableIds :[ "a0" ] } ) ;
244+
245+ expect ( session . Apple . count ( ) ) . toBe ( 1 ) ;
246+ session . Apple . first ( ) . delete ( ) ;
247+ expect ( session . Apple . count ( ) ) . toBe ( 0 ) ;
248+
249+ expect ( session . Orange . count ( ) ) . toBe ( 1 ) ;
250+ session . Orange . first ( ) . delete ( ) ;
251+ expect ( session . Orange . count ( ) ) . toBe ( 0 ) ;
252+ } ) ;
206253} ) ;
207254
208255describe ( "many-many with a custom through model" , ( ) => {