@@ -341,4 +341,53 @@ func TestMods(t *testing.T) {
341
341
}
342
342
})
343
343
}
344
+
345
+ t .Run ("Prevent Mod Reference Matching Existing Mod ID" , func (t * testing.T ) {
346
+ // First create a mod to get its ID
347
+ token , _ , err := makeUser (ctx )
348
+ testza .AssertNoError (t , err )
349
+
350
+ // Create the first mod
351
+ createRequest := authRequest (`mutation ($mod_reference: ModReference!) {
352
+ createMod(mod: {
353
+ name: "First Mod",
354
+ short_description: "This is the first mod for testing",
355
+ full_description: "A full description for the first mod",
356
+ mod_reference: $mod_reference
357
+ }) {
358
+ id
359
+ }
360
+ }` , token )
361
+ createRequest .Var ("mod_reference" , "first-mod" )
362
+
363
+ var createResponse struct {
364
+ CreateMod generated.Mod
365
+ }
366
+ testza .AssertNoError (t , client .Run (ctx , createRequest , & createResponse ))
367
+ testza .AssertNotEqual (t , "" , createResponse .CreateMod .ID )
368
+
369
+ existingModID := createResponse .CreateMod .ID
370
+
371
+ // Now try to create another mod with a reference that matches the first mod's ID
372
+ // This should fail
373
+ createRequest2 := authRequest (`mutation ($mod_reference: ModReference!) {
374
+ createMod(mod: {
375
+ name: "Second Mod",
376
+ short_description: "This should fail because reference matches existing mod ID",
377
+ full_description: "A full description for the second mod",
378
+ mod_reference: $mod_reference
379
+ }) {
380
+ id
381
+ }
382
+ }` , token )
383
+ createRequest2 .Var ("mod_reference" , existingModID ) // Using existing mod ID as reference
384
+
385
+ var createResponse2 struct {
386
+ CreateMod generated.Mod
387
+ }
388
+
389
+ err = client .Run (ctx , createRequest2 , & createResponse2 )
390
+ testza .AssertNotNil (t , err )
391
+ testza .AssertContains (t , err .Error (), "mod reference cannot match an existing mod ID" )
392
+ })
344
393
}
0 commit comments