mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-24 18:17:43 +00:00
chore: fix org v2beta integration tests (#10655)
# Which Problems Are Solved Flakiness in integration tests for organization v2beta service. # How the Problems Are Solved Fix eventual consistent handling of integration tests. # Additional Changes None # Additional Context None --------- Co-authored-by: Marco A. <marco@zitadel.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"slices"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -38,7 +39,7 @@ func TestMain(m *testing.M) {
|
||||
Instance = integration.NewInstance(ctx)
|
||||
Client = Instance.Client.OrgV2beta
|
||||
|
||||
CTX = Instance.WithAuthorization(ctx, integration.UserTypeIAMOwner)
|
||||
CTX = Instance.WithAuthorizationToken(ctx, integration.UserTypeIAMOwner)
|
||||
User = Instance.CreateHumanUser(CTX)
|
||||
return m.Run()
|
||||
}())
|
||||
@@ -60,7 +61,7 @@ func TestServer_CreateOrganization(t *testing.T) {
|
||||
tests := []test{
|
||||
{
|
||||
name: "missing permission",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeOrgOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeOrgOwner),
|
||||
req: &v2beta_org.CreateOrganizationRequest{
|
||||
Name: "name",
|
||||
Admins: nil,
|
||||
@@ -294,11 +295,7 @@ func TestServer_CreateOrganization(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_UpdateOrganization(t *testing.T) {
|
||||
orgs, orgsName, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, orgsName, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
orgName := orgsName[0]
|
||||
|
||||
@@ -311,7 +308,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "update org with new name",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.UpdateOrganizationRequest{
|
||||
Id: orgId,
|
||||
Name: "new org name",
|
||||
@@ -319,7 +316,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "update org with same name",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.UpdateOrganizationRequest{
|
||||
Id: orgId,
|
||||
Name: orgName,
|
||||
@@ -327,7 +324,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "update org with non existent org id",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.UpdateOrganizationRequest{
|
||||
Id: "non existant org id",
|
||||
// Name: "",
|
||||
@@ -336,7 +333,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "update org with no id",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.UpdateOrganizationRequest{
|
||||
Id: "",
|
||||
Name: orgName,
|
||||
@@ -364,18 +361,14 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
func TestServer_ListOrganizations(t *testing.T) {
|
||||
testStartTimestamp := time.Now()
|
||||
ListOrgIinstance := integration.NewInstance(CTX)
|
||||
listOrgIAmOwnerCtx := ListOrgIinstance.WithAuthorization(CTX, integration.UserTypeIAMOwner)
|
||||
listOrgIAmOwnerCtx := ListOrgIinstance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner)
|
||||
listOrgClient := ListOrgIinstance.Client.OrgV2beta
|
||||
|
||||
noOfOrgs := 3
|
||||
orgs, orgsName, err := createOrgs(listOrgIAmOwnerCtx, listOrgClient, noOfOrgs)
|
||||
if err != nil {
|
||||
require.NoError(t, err)
|
||||
return
|
||||
}
|
||||
orgs, orgsName, orgsDomain := createOrgs(listOrgIAmOwnerCtx, t, listOrgClient, noOfOrgs)
|
||||
|
||||
// deactivat org[1]
|
||||
_, err = listOrgClient.DeactivateOrganization(listOrgIAmOwnerCtx, &v2beta_org.DeactivateOrganizationRequest{
|
||||
_, err := listOrgClient.DeactivateOrganization(listOrgIAmOwnerCtx, &v2beta_org.DeactivateOrganizationRequest{
|
||||
Id: orgs[1].Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
@@ -389,7 +382,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "list organizations, without required permissions",
|
||||
ctx: ListOrgIinstance.WithAuthorization(CTX, integration.UserTypeNoPermission),
|
||||
ctx: ListOrgIinstance.WithAuthorizationToken(CTX, integration.UserTypeNoPermission),
|
||||
err: errors.New("membership not found"),
|
||||
},
|
||||
{
|
||||
@@ -563,22 +556,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
||||
{
|
||||
Filter: &v2beta_org.OrganizationSearchFilter_DomainFilter{
|
||||
DomainFilter: &v2beta_org.OrgDomainFilter{
|
||||
Domain: func() string {
|
||||
listOrgRes, err := listOrgClient.ListOrganizations(listOrgIAmOwnerCtx, &v2beta_org.ListOrganizationsRequest{
|
||||
Filter: []*v2beta_org.OrganizationSearchFilter{
|
||||
{
|
||||
Filter: &v2beta_org.OrganizationSearchFilter_IdFilter{
|
||||
IdFilter: &v2beta_org.OrgIDFilter{
|
||||
Id: orgs[1].Id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
domain := listOrgRes.Organizations[0].PrimaryDomain
|
||||
return domain
|
||||
}(),
|
||||
Domain: orgsDomain[1],
|
||||
Method: v2beta_object.TextQueryMethod_TEXT_QUERY_METHOD_EQUALS,
|
||||
},
|
||||
},
|
||||
@@ -694,13 +672,9 @@ func TestServer_DeleteOrganization(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "delete org no permission",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeNoPermission),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeNoPermission),
|
||||
createOrgFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
return orgs[0].Id
|
||||
},
|
||||
req: &v2beta_org.DeleteOrganizationRequest{},
|
||||
@@ -708,28 +682,20 @@ func TestServer_DeleteOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete org happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
createOrgFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
return orgs[0].Id
|
||||
},
|
||||
req: &v2beta_org.DeleteOrganizationRequest{},
|
||||
},
|
||||
{
|
||||
name: "delete already deleted org",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
createOrgFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
// delete org
|
||||
_, err = Client.DeleteOrganization(CTX, &v2beta_org.DeleteOrganizationRequest{Id: orgs[0].Id})
|
||||
_, err := Client.DeleteOrganization(CTX, &v2beta_org.DeleteOrganizationRequest{Id: orgs[0].Id})
|
||||
require.NoError(t, err)
|
||||
|
||||
return orgs[0].Id
|
||||
@@ -739,7 +705,7 @@ func TestServer_DeleteOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete non existent org",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.DeleteOrganizationRequest{
|
||||
Id: "non existent org id",
|
||||
},
|
||||
@@ -770,7 +736,7 @@ func TestServer_DeleteOrganization(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_DeactivateReactivateNonExistentOrganization(t *testing.T) {
|
||||
ctx := Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner)
|
||||
ctx := Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner)
|
||||
|
||||
// deactivate non existent organization
|
||||
_, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
|
||||
@@ -797,11 +763,7 @@ func TestServer_ActivateOrganization(t *testing.T) {
|
||||
ctx: CTX,
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
// 2. deactivate organization once
|
||||
@@ -838,13 +800,9 @@ func TestServer_ActivateOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "Activate, no permission",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeNoPermission),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeNoPermission),
|
||||
testFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
return orgId
|
||||
},
|
||||
@@ -863,11 +821,7 @@ func TestServer_ActivateOrganization(t *testing.T) {
|
||||
name: "Activate, already activated",
|
||||
ctx: CTX,
|
||||
testFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
return orgId
|
||||
},
|
||||
@@ -905,11 +859,7 @@ func TestServer_DeactivateOrganization(t *testing.T) {
|
||||
ctx: CTX,
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
return orgId
|
||||
@@ -917,13 +867,9 @@ func TestServer_DeactivateOrganization(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "Deactivate, no permission",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeNoPermission),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeNoPermission),
|
||||
testFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
return orgId
|
||||
},
|
||||
@@ -943,11 +889,7 @@ func TestServer_DeactivateOrganization(t *testing.T) {
|
||||
ctx: CTX,
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create orgs")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
// 2. deactivate organization once
|
||||
@@ -1011,11 +953,7 @@ func TestServer_AddOrganizationDomain(t *testing.T) {
|
||||
name: "add org domain, happy path",
|
||||
domain: gofakeit.URL(),
|
||||
testFunc: func() string {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
return orgId
|
||||
},
|
||||
@@ -1025,11 +963,7 @@ func TestServer_AddOrganizationDomain(t *testing.T) {
|
||||
domain: gofakeit.URL(),
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
domain := gofakeit.URL()
|
||||
@@ -1145,8 +1079,8 @@ func TestServer_AddOrganizationDomain_ClaimDomain(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, users.GetResult(), 2)
|
||||
require.NoError(collect, err)
|
||||
require.Len(collect, users.GetResult(), 2)
|
||||
|
||||
for _, u := range users.GetResult() {
|
||||
if u.GetUserId() == ownUser.GetUserId() {
|
||||
@@ -1175,11 +1109,7 @@ func TestServer_ListOrganizationDomains(t *testing.T) {
|
||||
domain: domain,
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
// 2. add domain
|
||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||
@@ -1238,11 +1168,7 @@ func TestServer_DeleteOrganizationDomain(t *testing.T) {
|
||||
domain: domain,
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
// 2. add domain
|
||||
@@ -1263,12 +1189,8 @@ func TestServer_DeleteOrganizationDomain(t *testing.T) {
|
||||
OrganizationId: orgId,
|
||||
})
|
||||
require.NoError(ttt, err)
|
||||
found := false
|
||||
for _, res := range queryRes.Domains {
|
||||
if res.DomainName == domain {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
|
||||
found := slices.ContainsFunc(queryRes.Domains, func(d *v2beta_org.Domain) bool { return d.GetDomainName() == domain })
|
||||
require.True(ttt, found, "unable to find added domain")
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
|
||||
@@ -1280,11 +1202,7 @@ func TestServer_DeleteOrganizationDomain(t *testing.T) {
|
||||
domain: gofakeit.URL(),
|
||||
testFunc: func() string {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return ""
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
domain := gofakeit.URL()
|
||||
@@ -1364,13 +1282,8 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
||||
name: "add org domain, re-add org domain",
|
||||
testFunc: func() {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
// ctx := Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner)
|
||||
|
||||
domain := gofakeit.URL()
|
||||
// 2. add domain
|
||||
@@ -1415,11 +1328,7 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
||||
name: "add org domain, delete org domain, re-delete org domain",
|
||||
testFunc: func() {
|
||||
// 1. create organization
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
domain := gofakeit.URL()
|
||||
@@ -1446,19 +1355,19 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
||||
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
|
||||
|
||||
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(CTX, 10*time.Minute)
|
||||
require.EventuallyWithT(t, func(t *assert.CollectT) {
|
||||
require.EventuallyWithT(t, func(ttt *assert.CollectT) {
|
||||
// 3. check organization domain deleted
|
||||
queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
|
||||
OrganizationId: orgId,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(ttt, err)
|
||||
found := false
|
||||
for _, res := range queryRes.Domains {
|
||||
if res.DomainName == domain {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
require.False(t, found, "deleted domain found")
|
||||
require.False(ttt, found, "deleted domain found")
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
|
||||
// 4. redelete organisation domain
|
||||
@@ -1498,14 +1407,10 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
_, err = Instance.Client.Admin.UpdateDomainPolicy(CTX, &admin.UpdateDomainPolicyRequest{
|
||||
_, err := Instance.Client.Admin.UpdateDomainPolicy(CTX, &admin.UpdateDomainPolicyRequest{
|
||||
ValidateOrgDomains: true,
|
||||
})
|
||||
if err != nil && !strings.Contains(err.Error(), "Organisation is already deactivated") {
|
||||
@@ -1527,7 +1432,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "validate org http happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
|
||||
OrganizationId: orgId,
|
||||
Domain: domain,
|
||||
@@ -1536,7 +1441,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "validate org http non existnetn org id",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
|
||||
OrganizationId: "non existent org id",
|
||||
Domain: domain,
|
||||
@@ -1547,7 +1452,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "validate org dns happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
|
||||
OrganizationId: orgId,
|
||||
Domain: domain,
|
||||
@@ -1556,7 +1461,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "validate org dns non existnetn org id",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
|
||||
OrganizationId: "non existent org id",
|
||||
Domain: domain,
|
||||
@@ -1567,7 +1472,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "validate org non existnetn domain",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
|
||||
OrganizationId: orgId,
|
||||
Domain: "non existent domain",
|
||||
@@ -1592,11 +1497,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
tests := []struct {
|
||||
@@ -1610,14 +1511,14 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "set org metadata",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
orgId: orgId,
|
||||
key: "key1",
|
||||
value: "value1",
|
||||
},
|
||||
{
|
||||
name: "set org metadata on non existant org",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
orgId: "non existant orgid",
|
||||
key: "key2",
|
||||
value: "value2",
|
||||
@@ -1625,7 +1526,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "update org metadata",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1644,7 +1545,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "update org metadata with same value",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1713,11 +1614,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
tests := []struct {
|
||||
@@ -1732,7 +1629,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "list org metadata happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1755,7 +1652,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "list multiple org metadata happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1794,7 +1691,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "list org metadata for non existent org",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
orgId: "non existent orgid",
|
||||
keyValuePairs: []struct{ key, value string }{},
|
||||
},
|
||||
@@ -1821,18 +1718,14 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
require.Equal(ttt, len(tt.keyValuePairs), foundMetadataCount)
|
||||
require.Len(ttt, tt.keyValuePairs, foundMetadataCount)
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
return
|
||||
}
|
||||
orgs, _, _ := createOrgs(CTX, t, Client, 1)
|
||||
orgId := orgs[0].Id
|
||||
|
||||
tests := []struct {
|
||||
@@ -1852,7 +1745,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "delete org metadata happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1875,7 +1768,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete multiple org metadata happy path",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1906,7 +1799,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete some org metadata but not all",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1948,7 +1841,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete org metadata that does not exist",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -1971,7 +1864,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "delete org metadata for org that does not exist",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
setupFunc: func() {
|
||||
_, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
@@ -2024,7 +1917,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
|
||||
// run delete
|
||||
_, err = Client.DeleteOrganizationMetadata(tt.ctx, &v2beta_org.DeleteOrganizationMetadataRequest{
|
||||
_, err := Client.DeleteOrganizationMetadata(tt.ctx, &v2beta_org.DeleteOrganizationMetadataRequest{
|
||||
OrganizationId: tt.orgId,
|
||||
Keys: keys,
|
||||
})
|
||||
@@ -2072,25 +1965,45 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func createOrgs(ctx context.Context, client v2beta_org.OrganizationServiceClient, noOfOrgs int) ([]*v2beta_org.CreateOrganizationResponse, []string, error) {
|
||||
func createOrgs(ctx context.Context, t *testing.T, client v2beta_org.OrganizationServiceClient, noOfOrgs int) ([]*v2beta_org.CreateOrganizationResponse, []string, []string) {
|
||||
var err error
|
||||
orgs := make([]*v2beta_org.CreateOrganizationResponse, noOfOrgs)
|
||||
orgsName := make([]string, noOfOrgs)
|
||||
orgNames := make([]string, noOfOrgs)
|
||||
orgDomains := make([]string, noOfOrgs)
|
||||
|
||||
for i := range noOfOrgs {
|
||||
orgName := gofakeit.Name()
|
||||
orgsName[i] = orgName
|
||||
orgName := integration.OrganizationName()
|
||||
orgNames[i] = orgName
|
||||
orgs[i], err = client.CreateOrganization(ctx,
|
||||
&v2beta_org.CreateOrganizationRequest{
|
||||
Name: orgName,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
return orgs, orgsName, nil
|
||||
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(ctx, time.Minute)
|
||||
for i := range noOfOrgs {
|
||||
require.EventuallyWithT(t, func(collect *assert.CollectT) {
|
||||
listOrgRes, err := client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Filter: []*v2beta_org.OrganizationSearchFilter{
|
||||
{
|
||||
Filter: &v2beta_org.OrganizationSearchFilter_IdFilter{
|
||||
IdFilter: &v2beta_org.OrgIDFilter{
|
||||
Id: orgs[i].Id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(collect, err)
|
||||
require.Len(collect, listOrgRes.Organizations, 1)
|
||||
|
||||
orgDomains[i] = listOrgRes.Organizations[0].PrimaryDomain
|
||||
}, retryDuration, tick, "timeout waiting for org creation")
|
||||
}
|
||||
|
||||
return orgs, orgNames, orgDomains
|
||||
}
|
||||
|
||||
func assertCreatedAdmin(t *testing.T, expected, got *v2beta_org.CreatedAdmin) {
|
||||
|
||||
Reference in New Issue
Block a user