@@ -2,9 +2,6 @@ package query
22
33import (
44 "fmt"
5- "testing"
6-
7- "github.com/stretchr/testify/require"
85
96 "github.com/authzed/spicedb/pkg/tuple"
107)
@@ -119,35 +116,6 @@ func NewMultiRoleFixedIterator() *FixedIterator {
119116 return NewFixedIterator (paths ... )
120117}
121118
122- // NewGroupMembershipFixedIterator creates a FixedIterator with group membership and nested groups
123- func NewGroupMembershipFixedIterator () * FixedIterator {
124- relations := []tuple.Relationship {
125- // Direct group memberships
126- createRelation ("group" , "engineers" , "member" , "user" , "alice" , "..." ),
127- createRelation ("group" , "engineers" , "member" , "user" , "bob" , "..." ),
128- createRelation ("group" , "designers" , "member" , "user" , "charlie" , "..." ),
129- createRelation ("group" , "designers" , "member" , "user" , "diana" , "..." ),
130-
131- // Nested group relationships
132- createRelation ("group" , "all_staff" , "member" , "group" , "engineers" , "..." ),
133- createRelation ("group" , "all_staff" , "member" , "group" , "designers" , "..." ),
134- createRelation ("group" , "leads" , "member" , "user" , "alice" , "..." ),
135- createRelation ("group" , "leads" , "member" , "user" , "charlie" , "..." ),
136-
137- // Resource permissions through groups
138- createRelation ("document" , "handbook" , "viewer" , "group" , "all_staff" , "member" ),
139- createRelation ("document" , "roadmap" , "viewer" , "group" , "leads" , "member" ),
140- createRelation ("document" , "code_review" , "editor" , "group" , "engineers" , "member" ),
141- createRelation ("document" , "design_guide" , "editor" , "group" , "designers" , "member" ),
142- }
143-
144- paths := make ([]Path , len (relations ))
145- for i , rel := range relations {
146- paths [i ] = FromRelationship (rel )
147- }
148- return NewFixedIterator (paths ... )
149- }
150-
151119// NewSingleUserFixedIterator creates a FixedIterator with relations for a single user across multiple resources
152120func NewSingleUserFixedIterator (userID string ) * FixedIterator {
153121 relations := []tuple.Relationship {
@@ -176,18 +144,18 @@ func NewLargeFixedIterator() *FixedIterator {
176144 var relations []tuple.Relationship
177145
178146 // Create 100 users with various permissions on 50 documents
179- for i := 0 ; i < 100 ; i ++ {
147+ for i := range 100 {
180148 userID := fmt .Sprintf ("user%d" , i )
181149
182150 // Each user gets viewer access to multiple documents
183- for j := 0 ; j < 10 ; j ++ {
151+ for j := range 10 {
184152 docID := fmt .Sprintf ("doc%d" , j )
185153 relations = append (relations , createRelation ("document" , docID , "viewer" , "user" , userID , "..." ))
186154 }
187155
188156 // Some users get editor access
189157 if i % 5 == 0 {
190- for j := 0 ; j < 5 ; j ++ {
158+ for j := range 5 {
191159 docID := fmt .Sprintf ("doc%d" , j )
192160 relations = append (relations , createRelation ("document" , docID , "editor" , "user" , userID , "..." ))
193161 }
@@ -207,55 +175,6 @@ func NewLargeFixedIterator() *FixedIterator {
207175 return NewFixedIterator (paths ... )
208176}
209177
210- // NewConflictingPermissionsFixedIterator creates a FixedIterator with potential permission conflicts for testing
211- func NewConflictingPermissionsFixedIterator () * FixedIterator {
212- relations := []tuple.Relationship {
213- // Same user with different permission levels on same resource
214- createRelation ("document" , "conflicted" , "viewer" , "user" , "alice" , "..." ),
215- createRelation ("document" , "conflicted" , "editor" , "user" , "alice" , "..." ),
216- createRelation ("document" , "conflicted" , "owner" , "user" , "alice" , "..." ),
217-
218- // Different relation types for same resource-subject pair
219- createRelation ("document" , "mixed" , "viewer" , "user" , "bob" , "..." ),
220- createRelation ("document" , "mixed" , "parent" , "user" , "bob" , "..." ),
221-
222- // Group and direct permissions on same resource
223- createRelation ("document" , "group_direct" , "viewer" , "group" , "team" , "member" ),
224- createRelation ("document" , "group_direct" , "editor" , "user" , "charlie" , "..." ),
225- createRelation ("group" , "team" , "member" , "user" , "charlie" , "..." ),
226- }
227-
228- paths := make ([]Path , len (relations ))
229- for i , rel := range relations {
230- paths [i ] = FromRelationship (rel )
231- }
232- return NewFixedIterator (paths ... )
233- }
234-
235- // AssertRelationsMatchByResource compares two slices of relations by their resource and subject,
236- // ignoring the specific relation names. This is useful for testing intersection behavior where
237- // we care about which resources have matching subjects, not the specific relation types.
238- func AssertRelationsMatchByResource (t * testing.T , expected , actual []tuple.Relationship , msgAndArgs ... any ) {
239- t .Helper ()
240-
241- // Convert to resource+subject keys for comparison
242- expectedKeys := make (map [string ]bool )
243- for _ , rel := range expected {
244- key := rel .Resource .ObjectType + ":" + rel .Resource .ObjectID + "@" +
245- rel .Subject .ObjectType + ":" + rel .Subject .ObjectID
246- expectedKeys [key ] = true
247- }
248-
249- actualKeys := make (map [string ]bool )
250- for _ , rel := range actual {
251- key := rel .Resource .ObjectType + ":" + rel .Resource .ObjectID + "@" +
252- rel .Subject .ObjectType + ":" + rel .Subject .ObjectID
253- actualKeys [key ] = true
254- }
255-
256- require .Equal (t , expectedKeys , actualKeys , msgAndArgs ... )
257- }
258-
259178// FaultyIterator is a test helper that simulates iterator errors
260179type FaultyIterator struct {
261180 shouldFailOnCheck bool
0 commit comments