forked from baron/baron-sso
테넌트 목록 조회 cursor기반으로 재구성. 사용자 metadata 미사용 필드 제거
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTenantRepository(t *testing.T) {
|
||||
@@ -161,4 +162,31 @@ func TestTenantRepository(t *testing.T) {
|
||||
err = repo.Create(ctx, tenant2)
|
||||
assert.Error(t, err) // Should fail due to UNIQUE constraint
|
||||
})
|
||||
|
||||
t.Run("Create reuses slug held by legacy soft-deleted tenant", func(t *testing.T) {
|
||||
slug := "legacy-soft-delete-reuse"
|
||||
require.NoError(t, testDB.Unscoped().Where("slug = ?", slug).Delete(&domain.Tenant{}).Error)
|
||||
|
||||
legacy := &domain.Tenant{
|
||||
Name: "Legacy Deleted",
|
||||
Slug: slug,
|
||||
Type: domain.TenantTypeCompany,
|
||||
}
|
||||
require.NoError(t, repo.Create(ctx, legacy))
|
||||
require.NoError(t, testDB.Delete(&domain.Tenant{}, "id = ?", legacy.ID).Error)
|
||||
|
||||
_, err := repo.FindBySlug(ctx, slug)
|
||||
require.Error(t, err)
|
||||
|
||||
replacement := &domain.Tenant{
|
||||
Name: "Replacement",
|
||||
Slug: slug,
|
||||
Type: domain.TenantTypeCompany,
|
||||
}
|
||||
require.NoError(t, repo.Create(ctx, replacement))
|
||||
|
||||
found, err := repo.FindBySlug(ctx, slug)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, replacement.ID, found.ID)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user