mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-02 14:12:27 +00:00
# Which Problems Are Solved As part of our efforts to simplify the structure and versions of our APIs, were moving all existing v2beta endpoints to v2 and deprecate them. They will be removed in Zitadel V5. # How the Problems Are Solved - This PR moves project v2beta service and its endpoints to a corresponding v2 version. The v2beta service and endpoints are deprecated. - The comments and have been improved and, where not already done, moved from swagger annotations to proto. - All required fields have been marked with `(google.api.field_behavior) = REQUIRED` and validation rules have been added where missing. - Name ID of the project always `project_id` - `UpdateProjectRequest` has been updated to align with the creation and retrieval of a project: - `project_role_check` has been renamed to `authorization_required` - `has_project_check` has been renamed to `project_access_required` - `ListProjectRequest` has been changed: - `project_grant_resource_owner_filter`, `project_grant_resource_owner_filter` and `project_organization_id_filter` have been removed and merged into a single `organization_id_filter` where a `type` can optionally be specified to select `owned`, `granted` or both project types within a specified organization. - `ListProjectGrantReques` has been changed: - `project_resource_owner_filter` has been renamed to `project_organization_id_filter` - `grant_resource_owner_filter` has been renamed to `granted_organization_id_filter` # Additional Changes Replaced deprecated `intergration.WithAuthorization` with `integration.WithAuthorizationToken` in integration tests. # Additional Context - part of #10772 - requires backport to v4.x
64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
//go:build integration
|
|
|
|
package project_test
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/muhlemmer/gu"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/zitadel/zitadel/internal/integration"
|
|
"github.com/zitadel/zitadel/pkg/grpc/feature/v2"
|
|
)
|
|
|
|
var (
|
|
CTX context.Context
|
|
instance *integration.Instance
|
|
instancePermissionV2 *integration.Instance
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
os.Exit(func() int {
|
|
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Minute)
|
|
defer cancel()
|
|
CTX = ctx
|
|
instance = integration.NewInstance(ctx)
|
|
instancePermissionV2 = integration.NewInstance(CTX)
|
|
return m.Run()
|
|
}())
|
|
}
|
|
|
|
func ensureFeaturePermissionV2Enabled(t *testing.T, instance *integration.Instance) {
|
|
ctx := instance.WithAuthorizationToken(CTX, integration.UserTypeIAMOwner)
|
|
f, err := instance.Client.FeatureV2.GetInstanceFeatures(ctx, &feature.GetInstanceFeaturesRequest{
|
|
Inheritance: true,
|
|
})
|
|
require.NoError(t, err)
|
|
if f.PermissionCheckV2.GetEnabled() {
|
|
return
|
|
}
|
|
_, err = instance.Client.FeatureV2.SetInstanceFeatures(ctx, &feature.SetInstanceFeaturesRequest{
|
|
PermissionCheckV2: gu.Ptr(true),
|
|
})
|
|
require.NoError(t, err)
|
|
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(ctx, 5*time.Minute)
|
|
require.EventuallyWithT(t,
|
|
func(ttt *assert.CollectT) {
|
|
f, err := instance.Client.FeatureV2.GetInstanceFeatures(ctx, &feature.GetInstanceFeaturesRequest{
|
|
Inheritance: true,
|
|
})
|
|
assert.NoError(ttt, err)
|
|
if f.PermissionCheckV2.GetEnabled() {
|
|
return
|
|
}
|
|
},
|
|
retryDuration,
|
|
tick,
|
|
"timed out waiting for ensuring instance feature")
|
|
}
|