Skip to content

Commit

Permalink
fix: don't set member if no GrowthbookUser defined, set to list defau…
Browse files Browse the repository at this point in the history
…lt (#6)
  • Loading branch information
raffis committed Jun 16, 2023
1 parent 5413741 commit c04d265
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
10 changes: 9 additions & 1 deletion internal/growthbook/organization.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ func UpdateOrganization(ctx context.Context, org Organization, db storage.Databa
err := col.FindOne(ctx, filter, &existing)

if err != nil {
if org.Members == nil {
org.Members = []OrganizationMember{}
}

org.DateCreated = time.Now()
return col.InsertOne(ctx, org)
}
Expand All @@ -54,7 +58,11 @@ func UpdateOrganization(ctx context.Context, org Organization, db storage.Databa
existing.OwnerEmail = org.OwnerEmail
existing.Name = org.Name
existing.ID = org.ID
existing.Members = org.Members

//If any GrowthbooUser is found the org membership will be managed by the controller
if org.Members != nil {
existing.Members = org.Members
}

updateBson, err := bson.Marshal(existing)
if err != nil {
Expand Down
13 changes: 13 additions & 0 deletions internal/growthbook/organization_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ func TestOrganizationCreateIfNotExists(t *testing.T) {
err := UpdateOrganization(context.TODO(), Organization, db)
g.Expect(err).To(BeNil())
g.Expect(insertedDoc.ID).To(Equal(Organization.ID))
g.Expect(insertedDoc.Members).To(Equal([]OrganizationMember{}))
}

func TestOrganizationNoUpdate(t *testing.T) {
Expand All @@ -84,11 +85,21 @@ func TestOrganizationUpdate(t *testing.T) {

var updateFilter interface{}
var updateDoc interface{}
var find bson.Raw

db := &MockDatabase{
FindOne: func(ctx context.Context, filter, dst interface{}) error {
dst.(*Organization).ID = "id"
dst.(*Organization).OwnerEmail = "old@mail.com"
dst.(*Organization).Members = []OrganizationMember{
{
ID: "user",
},
}

f, _ := bson.Marshal(dst)
find = f

return nil
},
UpdateOne: func(ctx context.Context, filter, doc interface{}) error {
Expand All @@ -114,7 +125,9 @@ func TestOrganizationUpdate(t *testing.T) {
updateDocSet := updateDoc.(primitive.D)
updateBSON := updateDocSet[0].Value.(bson.Raw)
newOwnerEmailValue := updateBSON.Lookup("ownerEmail")
newMemberValue := updateBSON.Lookup("members")

g.Expect(newOwnerEmailValue).To(Equal(bson.Raw(expectedDoc).Lookup("ownerEmail")))
g.Expect(newMemberValue).To(Equal(find.Lookup("members")))
g.Expect(updateFilter).To(Equal(expectedFilter))
}

0 comments on commit c04d265

Please sign in to comment.