@@ -3,6 +3,7 @@ package commands
33import (
44 "context"
55 "errors"
6+ "fmt"
67 "io"
78 "os"
89 "strings"
@@ -610,6 +611,48 @@ func TestBulkDeleteForcing(t *testing.T) {
610611 assertRelationshipsEmpty (ctx , t , c , & v1.RelationshipFilter {ResourceType : "test/resource" })
611612}
612613
614+ func TestBulkDeleteManyForcing (t * testing.T ) {
615+ ctx , cancel := context .WithCancel (context .Background ())
616+ defer cancel ()
617+ srv := zedtesting .NewTestServer (ctx , t )
618+ go func () {
619+ require .NoError (t , srv .Run (ctx ))
620+ }()
621+ conn , err := srv .GRPCDialContext (ctx )
622+ require .NoError (t , err )
623+
624+ originalClient := client .NewClient
625+ defer func () {
626+ client .NewClient = originalClient
627+ }()
628+
629+ client .NewClient = zedtesting .ClientFromConn (conn )
630+ testCmd := zedtesting .CreateTestCobraCommandWithFlagValue (t ,
631+ zedtesting.StringFlag {FlagName : "subject-filter" },
632+ zedtesting.UintFlag {FlagName : "optional-limit" , FlagValue : 1 },
633+ zedtesting.BoolFlag {FlagName : "force" , FlagValue : true })
634+ c , err := client .NewClient (testCmd )
635+ require .NoError (t , err )
636+
637+ _ , err = c .WriteSchema (ctx , & v1.WriteSchemaRequest {Schema : testSchema })
638+ require .NoError (t , err )
639+
640+ var updates []* v1.RelationshipUpdate
641+ for i := 0 ; i < 200 ; i ++ {
642+ updates = append (updates , & v1.RelationshipUpdate {
643+ Operation : v1 .RelationshipUpdate_OPERATION_TOUCH ,
644+ Relationship : tuple .ParseRel (fmt .Sprintf ("test/resource:%d#reader@test/user:1" , i )),
645+ })
646+ }
647+ _ , err = c .WriteRelationships (ctx , & v1.WriteRelationshipsRequest {Updates : updates })
648+ require .NoError (t , err )
649+
650+ err = bulkDeleteRelationships (testCmd , []string {"test/resource" })
651+ require .NoError (t , err )
652+
653+ assertRelationshipsEmpty (ctx , t , c , & v1.RelationshipFilter {ResourceType : "test/resource" })
654+ }
655+
613656func TestBulkDeleteNotForcing (t * testing.T ) {
614657 ctx , cancel := context .WithCancel (context .Background ())
615658 defer cancel ()
0 commit comments