github.com/influxdata/influxdb/v2@v2.7.6/tests/pipeline/fixture.go (about) 1 package pipeline 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/influxdata/influxdb/v2" 8 "github.com/influxdata/influxdb/v2/kit/platform" 9 "github.com/influxdata/influxdb/v2/tests" 10 ) 11 12 type ClientTag string 13 14 const ( 15 AdminTag ClientTag = "admin" 16 OwnerTag ClientTag = "owner" 17 MemberTag ClientTag = "member" 18 NoAccessTag ClientTag = "no_access" 19 ) 20 21 var AllClientTags = []ClientTag{AdminTag, OwnerTag, MemberTag, NoAccessTag} 22 23 // BaseFixture is a Fixture with multiple users in the system. 24 type BaseFixture struct { 25 Admin *tests.Client 26 Owner *tests.Client 27 Member *tests.Client 28 NoAccess *tests.Client 29 } 30 31 // NewBaseFixture creates a BaseFixture with and admin, an org owner, a member, and an outsider 32 // for the given orgID and bucketID. 33 func NewBaseFixture(t *testing.T, p *tests.Pipeline, orgID, bucketID platform.ID) BaseFixture { 34 fx := BaseFixture{} 35 admin := p.MustNewAdminClient() 36 fx.Admin = admin 37 cli, id, err := p.BrowserFor(orgID, bucketID, "owner") 38 if err != nil { 39 t.Fatalf("error while creating browser client: %v", err) 40 } 41 admin.MustAddOwner(t, id, influxdb.OrgsResourceType, orgID) 42 cli.UserID = id 43 fx.Owner = cli 44 45 cli, id, err = p.BrowserFor(orgID, bucketID, "member") 46 if err != nil { 47 t.Fatalf("error while creating browser client: %v", err) 48 } 49 admin.MustAddMember(t, id, influxdb.OrgsResourceType, orgID) 50 cli.UserID = id 51 fx.Member = cli 52 53 cli, id, err = p.BrowserFor(orgID, bucketID, "no_access") 54 if err != nil { 55 t.Fatalf("error while creating browser client: %v", err) 56 } 57 cli.UserID = id 58 fx.NoAccess = cli 59 return fx 60 } 61 62 // GetClient returns the client associated with the given tag. 63 func (f BaseFixture) GetClient(tag ClientTag) *tests.Client { 64 switch tag { 65 case AdminTag: 66 return f.Admin 67 case OwnerTag: 68 return f.Owner 69 case MemberTag: 70 return f.Member 71 case NoAccessTag: 72 return f.NoAccess 73 default: 74 panic(fmt.Sprintf("unknown tag %s", tag)) 75 } 76 }