fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge branch 'main' into org_api

This commit is contained in:
Iraq Jaber
2025-05-19 18:15:18 +02:00
parent fe74d6b88d
commit 5bdc19a6c0

View File

@@ -175,7 +175,7 @@ func TestServer_CreateOrganization(t *testing.T) {
require.NoError(t, err)
// check details
gotCD := got.GetCreatedDate().AsTime()
gotCD := got.GetCreationDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
@@ -195,6 +195,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
orgs, orgsName, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return
}
orgId := orgs[0].Id
orgName := orgsName[0]
@@ -281,7 +282,7 @@ func TestServer_ListOrganization(t *testing.T) {
tests := []struct {
name string
ctx context.Context
query []*v2beta_org.OrgQueryFilter
query []*v2beta_org.OrganizationSearchFilter
want []*v2beta_org.Organization
wantErr bool
}{
@@ -310,9 +311,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by id happy path",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgs[1].Id,
},
@@ -329,9 +330,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by state active",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_StateQuery{
Query: &v2beta_org.OrganizationSearchFilter_StateQuery{
StateQuery: &v2beta_org.OrgStateQuery{
State: v2beta_org.OrgState_ORG_STATE_ACTIVE,
},
@@ -356,9 +357,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by state inactive",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_StateQuery{
Query: &v2beta_org.OrganizationSearchFilter_StateQuery{
StateQuery: &v2beta_org.OrgStateQuery{
State: v2beta_org.OrgState_ORG_STATE_INACTIVE,
},
@@ -375,9 +376,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations by id bad id",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: "bad id",
},
@@ -388,9 +389,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name equals",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
Query: &v2beta_org.OrganizationSearchFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: orgsName[1],
Method: v2beta_object.TextQueryMethod_TEXT_QUERY_METHOD_EQUALS,
@@ -408,9 +409,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
Query: &v2beta_org.OrganizationSearchFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: func() string {
return orgsName[1][1 : len(orgsName[1])-2]
@@ -430,9 +431,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains IGNORE CASE",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_NameQuery{
Query: &v2beta_org.OrganizationSearchFilter_NameQuery{
NameQuery: &v2beta_org.OrgNameQuery{
Name: func() string {
return strings.ToUpper(orgsName[1][1 : len(orgsName[1])-2])
@@ -452,15 +453,15 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify domain name equals",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &org.OrgQueryFilter_DomainQuery{
Query: &org.OrganizationSearchFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
listOrgRes, err := listOrgClient.ListOrganizations(listOrgIAmOwnerCtx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgs[1].Id,
},
@@ -487,9 +488,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify domain name contains",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &org.OrgQueryFilter_DomainQuery{
Query: &org.OrganizationSearchFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
domain := strings.ToLower(strings.ReplaceAll(orgsName[1][1:len(orgsName[1])-2], " ", "-"))
@@ -510,9 +511,9 @@ func TestServer_ListOrganization(t *testing.T) {
{
name: "list organizations specify org name contains IGNORE CASE",
ctx: ListOrgIinstance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
query: []*v2beta_org.OrgQueryFilter{
query: []*v2beta_org.OrganizationSearchFilter{
{
Query: &org.OrgQueryFilter_DomainQuery{
Query: &org.OrganizationSearchFilter_DomainQuery{
DomainQuery: &org.OrgDomainQuery{
Domain: func() string {
domain := strings.ToUpper(strings.ReplaceAll(orgsName[1][1:len(orgsName[1])-2], " ", "-"))
@@ -536,7 +537,7 @@ func TestServer_ListOrganization(t *testing.T) {
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(context.Background(), 10*time.Minute)
require.EventuallyWithT(t, func(ttt *assert.CollectT) {
got, err := listOrgClient.ListOrganizations(tt.ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: tt.query,
Filter: tt.query,
})
if tt.wantErr {
@@ -593,6 +594,7 @@ func TestServer_DeleteOrganization(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return ""
}
return orgs[0].Id
},
@@ -605,6 +607,7 @@ func TestServer_DeleteOrganization(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return ""
}
// delete org
_, err = Client.DeleteOrganization(CTX, &v2beta_org.DeleteOrganizationRequest{Id: orgs[0].Id})
@@ -638,16 +641,16 @@ func TestServer_DeleteOrganization(t *testing.T) {
require.NoError(t, err)
// check details
gotCD := got.GetChangeDate().AsTime()
gotCD := got.GetDeletionDate().AsTime()
if !tt.dontCheckTime {
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
}
listOrgRes, err := Client.ListOrganizations(tt.ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: tt.req.Id,
},
@@ -678,238 +681,363 @@ func TestServer_DeactivateReactivateNonExistentOrganization(t *testing.T) {
}
func TestServer_DeactivateReactivateOrganization(t *testing.T) {
// 1. create organization
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create orgs")
tests := []struct {
name string
testFunc func()
}{
{
name: "deactivate active org, then deactivate again",
testFunc: func() {
// 1. create organization
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create orgs")
return
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
// 2. check inital state of organization
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 3. deactivate organization once
deactivate_res, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
gotCD := deactivate_res.GetChangeDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check organization state is deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 5. repeat deactivate organization once
_, err = Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
Id: orgId,
})
// TODO this error message needs to be reoved
require.Contains(t, err.Error(), "Organisation is already deactivated")
// 6. repeat check organization state is still deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
},
},
{
name: "re-activate active org, then re-activate again",
testFunc: func() {
// 1. create organization
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create orgs")
return
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
// 2. check inital state of organization
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
// require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 3. deactivate organization once
deactivate_res, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
gotCD := deactivate_res.GetChangeDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check organization state is deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 5. reactivate organization
reactivate_res, err := Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
gotCD = reactivate_res.GetChangeDate().AsTime()
now = time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 6. check organization state is active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 7. repeat reactivate organization
reactivate_res, err = Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
// TODO remove this error message
require.Contains(t, err.Error(), "Organisation is already active")
// 8. repeat check organization state is still active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
Filter: []*v2beta_org.OrganizationSearchFilter{
{
Query: &v2beta_org.OrganizationSearchFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
},
},
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
// 2. check inital state of organization
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 3. deactivate organization once
deactivate_res, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
gotCD := deactivate_res.GetChangeDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check organization state is deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 5. repeat deactivate organization once
// deactivate_res, err = Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
_, err = Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
Id: orgId,
})
// TODO this error message needs to be reoved
require.Contains(t, err.Error(), "Organisation is already deactivated")
// 6. repeat check organization state is still deactivated
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
// 7. reactivate organization
reactivate_res, err := Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
require.NoError(t, err)
gotCD = reactivate_res.GetChangeDate().AsTime()
now = time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 8. check organization state is active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
// 9. repeat reactivate organization
reactivate_res, err = Client.ActivateOrganization(ctx, &v2beta_org.ActivateOrganizationRequest{
Id: orgId,
})
// TODO remove this error message
require.Contains(t, err.Error(), "Organisation is already active")
// 10. repeat check organization state is still active
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
OrganizationSearchFilter: []*v2beta_org.OrgQueryFilter{
{
Query: &v2beta_org.OrgQueryFilter_IdQuery{
IdQuery: &v2beta_org.OrgIDQuery{
Id: orgId,
},
},
},
},
})
require.NoError(t, err)
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Organizations[0].State)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tt.testFunc()
})
}
}
func TestServer_AddOListDeleterganizationDomain(t *testing.T) {
// 1. create organization
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
func TestServer_AddListDeletOerganizationDomain(t *testing.T) {
tests := []struct {
name string
testFunc func()
}{
{
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
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
domain := "www.domain.com"
// 2. add domain
addOrgDomainRes, err := Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
require.NoError(t, err)
// check details
gotCD := addOrgDomainRes.GetCreationDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 2. check domain is added
queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found := false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.True(t, found, "unable to find added domain")
// 3. re-add domain
_, err = Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
// TODO remove error for adding already existing domain
// require.NoError(t, err)
require.Contains(t, err.Error(), "Errors.Already.Exists")
// check details
// gotCD = addOrgDomainRes.GetDetails().GetChangeDate().AsTime()
// now = time.Now()
// assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check domain is added
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.True(t, found, "unable to find added domain")
},
},
{
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
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
domain := "www.domain2.com"
// 2. add domain
addOrgDomainRes, err := Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
require.NoError(t, err)
// check details
gotCD := addOrgDomainRes.GetCreationDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 2. check domain is added
queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found := false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.True(t, found, "unable to find added domain")
// 3. delete organisation domain
deleteOrgDomainRes, err := Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
require.NoError(t, err)
// check details
gotCD = deleteOrgDomainRes.GetDeletionDate().AsTime()
now = time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check organization domain deleted
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.False(t, found, "deleted domain found")
// 5. redelete organisation domain
_, err = Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
// TODO remove error for deleting org domain already deleted
// require.NoError(t, err)
require.Contains(t, err.Error(), "Domain doesn't exist on organization")
// check details
// gotCD = deleteOrgDomainRes.GetDetails().GetChangeDate().AsTime()
// now = time.Now()
// assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 6. check organization domain deleted
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.False(t, found, "deleted domain found")
},
},
}
orgId := orgs[0].Id
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
domain := "www.domain.com"
// 2. add domain
addOrgDomainRes, err := Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
require.NoError(t, err)
// check details
gotCD := addOrgDomainRes.GetCreatedDate().AsTime()
now := time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 2. check domain is added
queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found := false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tt.testFunc()
})
}
require.True(t, found, "unable to find added domain")
// 3. readd domain
_, err = Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
// TODO remove error for adding already existing domain
// require.NoError(t, err)
require.Contains(t, err.Error(), "Errors.Already.Exists")
// check details
// gotCD = addOrgDomainRes.GetDetails().GetChangeDate().AsTime()
// now = time.Now()
// assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 4. check domain is added
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.True(t, found, "unable to find added domain")
// 5. delete organisation domain
deleteOrgDomainRes, err := Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
require.NoError(t, err)
// check details
gotCD = deleteOrgDomainRes.GetDeletionDate().AsTime()
now = time.Now()
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 6. check organization domain deleted
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.False(t, found, "deleted domain found")
// 7. redelete organisation domain
_, err = Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{
Id: orgId,
Domain: domain,
})
// TODO remove error for deleting org domain already deleted
// require.NoError(t, err)
require.Contains(t, err.Error(), "Domain doesn't exist on organization")
// check details
// gotCD = deleteOrgDomainRes.GetDetails().GetChangeDate().AsTime()
// now = time.Now()
// assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
// 8. check organization domain deleted
queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{
Id: orgId,
})
require.NoError(t, err)
found = false
for _, res := range queryRes.Result {
if res.DomainName == domain {
found = true
}
}
require.False(t, found, "deleted domain found")
}
func TestServer_ValidateOrganizationDomain(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return
}
orgId := orgs[0].Id
@@ -937,18 +1065,18 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
name: "validate org http happy path",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
Id: orgId,
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
OrganizationId: orgId,
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
},
},
{
name: "validate org http non existnetn org id",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
Id: "non existent org id",
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
OrganizationId: "non existent org id",
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
},
// BUG: this should be 'organization does not exist'
err: errors.New("Domain doesn't exist on organization"),
@@ -957,18 +1085,18 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
name: "validate org dns happy path",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
Id: orgId,
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS,
OrganizationId: orgId,
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS,
},
},
{
name: "validate org dns non existnetn org id",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
Id: "non existent org id",
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS,
OrganizationId: "non existent org id",
Domain: domain,
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS,
},
// BUG: this should be 'organization does not exist'
err: errors.New("Domain doesn't exist on organization"),
@@ -977,9 +1105,9 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
name: "validate org non existnetn domain",
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
req: &v2beta_org.GenerateOrganizationDomainValidationRequest{
Id: orgId,
Domain: "non existent domain",
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
OrganizationId: orgId,
Domain: "non existent domain",
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP,
},
err: errors.New("Domain doesn't exist on organization"),
},
@@ -1003,6 +1131,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return
}
orgId := orgs[0].Id
@@ -1096,7 +1225,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) {
// check metadata
listMetadataRes, err := Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
Id: orgId,
OrganizationId: orgId,
})
require.NoError(t, err)
foundMetadata := false
@@ -1120,6 +1249,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return
}
orgId := orgs[0].Id
@@ -1208,7 +1338,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) {
tt.setupFunc()
}
got, err := Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
Id: tt.orgId,
OrganizationId: tt.orgId,
})
require.NoError(t, err)
@@ -1230,6 +1360,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
orgs, _, err := createOrgs(CTX, Client, 1)
if err != nil {
assert.Fail(t, "unable to create org")
return
}
orgId := orgs[0].Id
@@ -1399,7 +1530,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
// check metadata exists
listOrgMetadataRes, err := Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
Id: tt.orgId,
OrganizationId: tt.orgId,
})
require.NoError(t, err)
foundMetadataCount := 0
@@ -1431,7 +1562,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
// check metadata was definitely deleted
listOrgMetadataRes, err = Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
Id: tt.orgId,
OrganizationId: tt.orgId,
})
require.NoError(t, err)
foundMetadataCount = 0
@@ -1447,7 +1578,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
// check metadata that should not be delted was not deleted
listOrgMetadataRes, err = Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{
Id: tt.orgId,
OrganizationId: tt.orgId,
})
require.NoError(t, err)
foundMetadataCount = 0