mirror of
https://github.com/zitadel/zitadel.git
synced 2025-11-02 07:58:46 +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>
(cherry picked from commit 75774eb64c)
This commit is contained in:
committed by
Livio Spring
parent
64bddb328c
commit
268dd1d543
@@ -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,
|
||||
},
|
||||
},
|
||||
@@ -646,7 +624,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
||||
Filter: tt.query,
|
||||
})
|
||||
if tt.err != nil {
|
||||
require.ErrorContains(t, err, tt.err.Error())
|
||||
require.ErrorContains(ttt, err, tt.err.Error())
|
||||
return
|
||||
}
|
||||
require.NoError(ttt, err)
|
||||
@@ -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
|
||||
@@ -828,7 +790,9 @@ func TestServer_ActivateOrganization(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(ttt, err)
|
||||
require.Equal(ttt, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
|
||||
if assert.GreaterOrEqual(ttt, len(listOrgRes.Organizations), 1) {
|
||||
require.Equal(ttt, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
|
||||
}
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
|
||||
return orgId
|
||||
@@ -836,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
|
||||
},
|
||||
@@ -861,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
|
||||
},
|
||||
@@ -903,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
|
||||
@@ -915,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
|
||||
},
|
||||
@@ -941,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
|
||||
@@ -1009,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
|
||||
},
|
||||
@@ -1023,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()
|
||||
@@ -1048,14 +984,14 @@ func TestServer_AddOrganizationDomain(t *testing.T) {
|
||||
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.True(t, found, "unable to find added domain")
|
||||
require.True(ttt, found, "unable to find added domain")
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
|
||||
return orgId
|
||||
@@ -1143,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() {
|
||||
@@ -1173,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{
|
||||
@@ -1209,20 +1141,20 @@ func TestServer_ListOrganizationDomains(t *testing.T) {
|
||||
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 == tt.domain {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
require.True(t, found, "unable to find added domain")
|
||||
require.True(ttt, found, "unable to find added domain")
|
||||
}, retryDuration, tick, "timeout waiting for adding domain")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
||||
func TestServer_DeleteOrganizationDomain(t *testing.T) {
|
||||
domain := gofakeit.URL()
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -1236,11 +1168,7 @@ func TestServer_DeleteOerganizationDomain(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
|
||||
@@ -1260,14 +1188,10 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
||||
queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
|
||||
OrganizationId: orgId,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
found := false
|
||||
for _, res := range queryRes.Domains {
|
||||
if res.DomainName == domain {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
require.True(t, found, "unable to find added domain")
|
||||
require.NoError(ttt, err)
|
||||
|
||||
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")
|
||||
|
||||
return orgId
|
||||
@@ -1278,11 +1202,7 @@ func TestServer_DeleteOerganizationDomain(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()
|
||||
@@ -1303,14 +1223,14 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
||||
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.True(t, found, "unable to find added domain")
|
||||
require.True(ttt, found, "unable to find added domain")
|
||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||
|
||||
_, err = Client.DeleteOrganizationDomain(CTX, &v2beta_org.DeleteOrganizationDomainRequest{
|
||||
@@ -1362,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
|
||||
@@ -1413,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()
|
||||
@@ -1444,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
|
||||
@@ -1496,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") {
|
||||
@@ -1525,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,
|
||||
@@ -1534,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,
|
||||
@@ -1545,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,
|
||||
@@ -1554,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,
|
||||
@@ -1565,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",
|
||||
@@ -1590,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 {
|
||||
@@ -1608,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",
|
||||
@@ -1623,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,
|
||||
@@ -1642,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,
|
||||
@@ -1691,7 +1594,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
|
||||
listMetadataRes, err := Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
|
||||
OrganizationId: orgId,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(ttt, err)
|
||||
foundMetadata := false
|
||||
foundMetadataKeyCount := 0
|
||||
for _, res := range listMetadataRes.Metadata {
|
||||
@@ -1711,26 +1614,22 @@ 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 {
|
||||
name string
|
||||
ctx context.Context
|
||||
setupFunc func()
|
||||
orgId string
|
||||
keyValuPars []struct {
|
||||
name string
|
||||
ctx context.Context
|
||||
setupFunc func()
|
||||
orgId string
|
||||
keyValuePairs []struct {
|
||||
key string
|
||||
value string
|
||||
}
|
||||
}{
|
||||
{
|
||||
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,
|
||||
@@ -1744,7 +1643,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
},
|
||||
orgId: orgId,
|
||||
keyValuPars: []struct{ key, value string }{
|
||||
keyValuePairs: []struct{ key, value string }{
|
||||
{
|
||||
key: "key1",
|
||||
value: "value1",
|
||||
@@ -1753,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,
|
||||
@@ -1775,7 +1674,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
},
|
||||
orgId: orgId,
|
||||
keyValuPars: []struct{ key, value string }{
|
||||
keyValuePairs: []struct{ key, value string }{
|
||||
{
|
||||
key: "key2",
|
||||
value: "value2",
|
||||
@@ -1791,10 +1690,10 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "list org metadata for non existent org",
|
||||
ctx: Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner),
|
||||
orgId: "non existent orgid",
|
||||
keyValuPars: []struct{ key, value string }{},
|
||||
name: "list org metadata for non existent org",
|
||||
ctx: Instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner),
|
||||
orgId: "non existent orgid",
|
||||
keyValuePairs: []struct{ key, value string }{},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
@@ -1808,10 +1707,10 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
got, err := Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
|
||||
OrganizationId: tt.orgId,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(ttt, err)
|
||||
|
||||
foundMetadataCount := 0
|
||||
for _, kv := range tt.keyValuPars {
|
||||
for _, kv := range tt.keyValuePairs {
|
||||
for _, res := range got.Metadata {
|
||||
if res.Key == kv.key &&
|
||||
string(res.Value) == kv.value {
|
||||
@@ -1819,18 +1718,14 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
require.Equal(t, len(tt.keyValuPars), 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 {
|
||||
@@ -1850,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,
|
||||
@@ -1873,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,
|
||||
@@ -1904,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,
|
||||
@@ -1946,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,
|
||||
@@ -1969,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,
|
||||
@@ -2022,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,
|
||||
})
|
||||
@@ -2070,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