mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-14 02:49:13 +00:00
fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! refactor(api): moving organization API resourced based
This commit is contained in:
@@ -11,11 +11,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/brianvoe/gofakeit/v6"
|
||||
"github.com/muhlemmer/gu"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
gofakeit "github.com/brianvoe/gofakeit/v6"
|
||||
"github.com/zitadel/zitadel/internal/integration"
|
||||
|
||||
"github.com/zitadel/zitadel/pkg/grpc/admin"
|
||||
@@ -265,53 +265,7 @@ func TestServer_UpdateOrganization(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestServer_GetOrganizationByID(t *testing.T) {
|
||||
orgs, orgsName, err := createOrgs(1)
|
||||
if err != nil {
|
||||
assert.Fail(t, "unable to create org")
|
||||
}
|
||||
orgId := orgs[0].Id
|
||||
orgName := orgsName[0]
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
ctx context.Context
|
||||
req *v2beta_org.GetOrganizationByIDRequest
|
||||
want *v2beta_org.GetOrganizationByIDResponse
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "get organization happy path",
|
||||
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GetOrganizationByIDRequest{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "get organization that doesn't exist",
|
||||
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
|
||||
req: &v2beta_org.GetOrganizationByIDRequest{
|
||||
Id: "non existing organization",
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := Client.GetOrganizationByID(tt.ctx, tt.req)
|
||||
if tt.wantErr {
|
||||
require.Error(t, err)
|
||||
return
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, orgId, got.Organization.Id)
|
||||
require.Equal(t, orgName, got.Organization.Name)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: finish off qyery testing in ListOrganizations
|
||||
// // TODO: finish off qyery testing in ListOrganizations
|
||||
func TestServer_ListOrganization(t *testing.T) {
|
||||
noOfOrgs := 3
|
||||
orgs, orgsName, err := createOrgs(noOfOrgs)
|
||||
@@ -431,10 +385,22 @@ func TestServer_DeleteOrganization(t *testing.T) {
|
||||
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
|
||||
assert.NotEmpty(t, got.GetDetails().GetResourceOwner())
|
||||
|
||||
_, err = Client.GetOrganizationByID(tt.ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
// _, err = Client.ListOrganizations(tt.ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
// Id: tt.req.Id,
|
||||
// })
|
||||
listOrgRes, err := Client.ListOrganizations(tt.ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: tt.req.Id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.Contains(t, err.Error(), "Organisation not found")
|
||||
require.NoError(t, err)
|
||||
require.Nil(t, listOrgRes.Result)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -465,11 +431,19 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
|
||||
ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner)
|
||||
|
||||
// 2. check inital state of organization
|
||||
res, err := Client.GetOrganizationByID(ctx, &org.GetOrganizationByIDRequest{
|
||||
listOrgRes, err := Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, res.Organization.State)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
|
||||
|
||||
// 3. deactivate organization once
|
||||
deactivate_res, err := Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
|
||||
@@ -483,26 +457,44 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
|
||||
assert.NotEmpty(t, deactivate_res.GetDetails().GetResourceOwner())
|
||||
|
||||
// 4. check organization state is deactivated
|
||||
res, err = Client.GetOrganizationByID(ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, res.Organization.State)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Result[0].State)
|
||||
|
||||
// 5. repeat deactivate organization once
|
||||
deactivate_res, err = Client.DeactivateOrganization(ctx, &v2beta_org.DeactivateOrganizationRequest{
|
||||
// // 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
|
||||
res, err = Client.GetOrganizationByID(ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, res.Organization.State)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Result[0].State)
|
||||
|
||||
// 7. reactivate organization
|
||||
// // 7. reactivate organization
|
||||
reactivate_res, err := Client.ReactivateOrganization(ctx, &v2beta_org.ReactivateOrganizationRequest{
|
||||
Id: orgId,
|
||||
})
|
||||
@@ -513,46 +505,42 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) {
|
||||
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
|
||||
assert.NotEmpty(t, reactivate_res.GetDetails().GetResourceOwner())
|
||||
|
||||
// 8. check organization state is active
|
||||
res, err = Client.GetOrganizationByID(ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
// // 8. check organization state is active
|
||||
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, res.Organization.State)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
|
||||
|
||||
// 9. repeat reactivate organization
|
||||
// // 9. repeat reactivate organization
|
||||
reactivate_res, err = Client.ReactivateOrganization(ctx, &v2beta_org.ReactivateOrganizationRequest{
|
||||
Id: orgId,
|
||||
})
|
||||
// TODO remove this error message
|
||||
require.Contains(t, err.Error(), "Organisation is already active")
|
||||
|
||||
// 10. repeat check organization state is still active
|
||||
res, err = Client.GetOrganizationByID(ctx, &v2beta_org.GetOrganizationByIDRequest{
|
||||
// // 10. repeat check organization state is still active
|
||||
listOrgRes, err = Client.ListOrganizations(ctx, &v2beta_org.ListOrganizationsRequest{
|
||||
Queries: []*v2beta_org.OrgQuery{
|
||||
{
|
||||
Query: &v2beta_org.OrgQuery_IdQuery{
|
||||
IdQuery: &v2beta_org.OrgIDQuery{
|
||||
Id: orgId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, res.Organization.State)
|
||||
}
|
||||
|
||||
func createOrgs(noOfOrgs int) ([]*v2beta_org.CreateOrganizationResponse, []string, error) {
|
||||
var err error
|
||||
orgs := make([]*v2beta_org.CreateOrganizationResponse, noOfOrgs)
|
||||
orgsName := make([]string, noOfOrgs)
|
||||
|
||||
for i := range noOfOrgs {
|
||||
orgName := gofakeit.Name()
|
||||
orgsName[i] = orgName
|
||||
orgs[i], err = Client.CreateOrganization(CTX,
|
||||
&v2beta_org.CreateOrganizationRequest{
|
||||
Name: orgName,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return orgs, orgsName, nil
|
||||
require.Equal(t, v2beta_org.OrgState_ORG_STATE_ACTIVE, listOrgRes.Result[0].State)
|
||||
}
|
||||
|
||||
func TestServer_AddOListDeleterganizationDomain(t *testing.T) {
|
||||
@@ -730,7 +718,6 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS,
|
||||
},
|
||||
},
|
||||
// TODO: "validate org dns non existnetn org id" has an consistent error message, need to investigate this
|
||||
{
|
||||
name: "validate org dns non existnetn org id",
|
||||
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
|
||||
@@ -742,7 +729,6 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
||||
// BUG: this should be 'organization does not exist'
|
||||
err: errors.New("Domain doesn't exist on organization"),
|
||||
},
|
||||
// TODO: "validate org non existnetn domain" has an consistent error message, need to investigate this
|
||||
{
|
||||
name: "validate org non existnetn domain",
|
||||
ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner),
|
||||
@@ -1245,6 +1231,27 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func createOrgs(noOfOrgs int) ([]*v2beta_org.CreateOrganizationResponse, []string, error) {
|
||||
var err error
|
||||
orgs := make([]*v2beta_org.CreateOrganizationResponse, noOfOrgs)
|
||||
orgsName := make([]string, noOfOrgs)
|
||||
|
||||
for i := range noOfOrgs {
|
||||
orgName := gofakeit.Name()
|
||||
orgsName[i] = orgName
|
||||
orgs[i], err = Client.CreateOrganization(CTX,
|
||||
&v2beta_org.CreateOrganizationRequest{
|
||||
Name: orgName,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return orgs, orgsName, nil
|
||||
}
|
||||
|
||||
func assertCreatedAdmin(t *testing.T, expected, got *v2beta_org.CreateOrganizationResponse_CreatedAdmin) {
|
||||
if expected.GetUserId() != "" {
|
||||
assert.NotEmpty(t, got.GetUserId())
|
||||
|
Reference in New Issue
Block a user