Skip to content

Commit 5f573aa

Browse files
committed
PR Feedback: add test deleting hundreds
1 parent 1079bd6 commit 5f573aa

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

internal/commands/relationship_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package commands
33
import (
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+
613656
func TestBulkDeleteNotForcing(t *testing.T) {
614657
ctx, cancel := context.WithCancel(context.Background())
615658
defer cancel()

0 commit comments

Comments
 (0)