mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-15 20:38:00 +00:00
ed0bc39ea4
* docs: fix init description typos
* feat: block instances using limits
* translate
* unit tests
* fix translations
* redirect /ui/login
* fix http interceptor
* cleanup
* fix http interceptor
* fix: delete cookies on gateway 200
* add integration tests
* add command test
* docs
* fix integration tests
* add bulk api and integration test
* optimize bulk set limits
* unit test bulk limits
* fix broken link
* fix assets middleware
* fix broken link
* validate instance id format
* Update internal/eventstore/search_query.go
Co-authored-by: Livio Spring <livio.a@gmail.com>
* remove support for owner bulk limit commands
* project limits to instances
* migrate instances projection
* Revert "migrate instances projection"
This reverts commit 214218732a
.
* join limits, remove owner
* remove todo
* use optional bool
* normally validate instance ids
* use 302
* cleanup
* cleanup
* Update internal/api/grpc/system/limits_converter.go
Co-authored-by: Livio Spring <livio.a@gmail.com>
* remove owner
* remove owner from reset
---------
Co-authored-by: Livio Spring <livio.a@gmail.com>
76 lines
2.6 KiB
Go
76 lines
2.6 KiB
Go
//go:build integration
|
|
|
|
package system_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/muhlemmer/gu"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/zitadel/zitadel/internal/integration"
|
|
"github.com/zitadel/zitadel/pkg/grpc/system"
|
|
)
|
|
|
|
func TestServer_Limits_Bulk(t *testing.T) {
|
|
const len = 5
|
|
type instance struct{ domain, id string }
|
|
instances := make([]*instance, len)
|
|
for i := 0; i < len; i++ {
|
|
domain := integration.RandString(5) + ".integration.localhost"
|
|
resp, err := Tester.Client.System.CreateInstance(SystemCTX, &system.CreateInstanceRequest{
|
|
InstanceName: "testinstance",
|
|
CustomDomain: domain,
|
|
Owner: &system.CreateInstanceRequest_Machine_{
|
|
Machine: &system.CreateInstanceRequest_Machine{
|
|
UserName: "owner",
|
|
Name: "owner",
|
|
},
|
|
},
|
|
})
|
|
require.NoError(t, err)
|
|
instances[i] = &instance{domain, resp.GetInstanceId()}
|
|
}
|
|
resp, err := Tester.Client.System.BulkSetLimits(SystemCTX, &system.BulkSetLimitsRequest{
|
|
Limits: []*system.SetLimitsRequest{{
|
|
InstanceId: instances[0].id,
|
|
Block: gu.Ptr(true),
|
|
}, {
|
|
InstanceId: instances[1].id,
|
|
Block: gu.Ptr(false),
|
|
}, {
|
|
InstanceId: instances[2].id,
|
|
Block: gu.Ptr(true),
|
|
}, {
|
|
InstanceId: instances[3].id,
|
|
Block: gu.Ptr(false),
|
|
}, {
|
|
InstanceId: instances[4].id,
|
|
Block: gu.Ptr(true),
|
|
}},
|
|
})
|
|
require.NoError(t, err)
|
|
details := resp.GetTargetDetails()
|
|
require.Len(t, details, len)
|
|
t.Run("the first instance is blocked", func(t *testing.T) {
|
|
require.Equal(t, instances[0].id, details[0].GetResourceOwner(), "resource owner must be instance id")
|
|
testBlockingAPI(t, publicAPIBlockingTest(instances[0].domain), true, true)
|
|
})
|
|
t.Run("the second instance isn't blocked", func(t *testing.T) {
|
|
require.Equal(t, instances[1].id, details[1].GetResourceOwner(), "resource owner must be instance id")
|
|
testBlockingAPI(t, publicAPIBlockingTest(instances[1].domain), false, true)
|
|
})
|
|
t.Run("the third instance is blocked", func(t *testing.T) {
|
|
require.Equal(t, instances[2].id, details[2].GetResourceOwner(), "resource owner must be instance id")
|
|
testBlockingAPI(t, publicAPIBlockingTest(instances[2].domain), true, true)
|
|
})
|
|
t.Run("the fourth instance isn't blocked", func(t *testing.T) {
|
|
require.Equal(t, instances[3].id, details[3].GetResourceOwner(), "resource owner must be instance id")
|
|
testBlockingAPI(t, publicAPIBlockingTest(instances[3].domain), false, true)
|
|
})
|
|
t.Run("the fifth instance is blocked", func(t *testing.T) {
|
|
require.Equal(t, instances[4].id, details[4].GetResourceOwner(), "resource owner must be instance id")
|
|
testBlockingAPI(t, publicAPIBlockingTest(instances[4].domain), true, true)
|
|
})
|
|
}
|