@@ -3,6 +3,7 @@ package commands
3
3
import (
4
4
"context"
5
5
"errors"
6
+ "fmt"
6
7
"io"
7
8
"os"
8
9
"strings"
@@ -610,6 +611,48 @@ func TestBulkDeleteForcing(t *testing.T) {
610
611
assertRelationshipsEmpty (ctx , t , c , & v1.RelationshipFilter {ResourceType : "test/resource" })
611
612
}
612
613
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
+
613
656
func TestBulkDeleteNotForcing (t * testing.T ) {
614
657
ctx , cancel := context .WithCancel (context .Background ())
615
658
defer cancel ()
0 commit comments