Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go/apps/api/routes/v2_identities_get_identity/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ func TestSuccess(t *testing.T) {
})

req := handler.Request{
Identity: identity,
Identity: identity.ID,
}
res := testutil.CallRoute[handler.Request, handler.Response](h, route, headers, req)
require.Equal(t, http.StatusOK, res.Status)
Expand Down
54 changes: 24 additions & 30 deletions go/apps/api/routes/v2_keys_add_permissions/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/stretchr/testify/require"
handler "github.com/unkeyed/unkey/go/apps/api/routes/v2_keys_add_permissions"
"github.com/unkeyed/unkey/go/pkg/db"
"github.com/unkeyed/unkey/go/pkg/ptr"
"github.com/unkeyed/unkey/go/pkg/testutil"
"github.com/unkeyed/unkey/go/pkg/testutil/seed"
)
Expand Down Expand Up @@ -57,13 +58,11 @@ func TestSuccess(t *testing.T) {
keyID := keyResponse.KeyID

// Create a permission using testutil helper
permissionSlug := "documents.write.single.name"
permissionDescription := "Write documents permission"
permissionID := h.CreatePermission(seed.CreatePermissionRequest{
permission := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permissionSlug,
Slug: permissionSlug,
Description: &permissionDescription,
Name: "documents.write.single.name",
Slug: "documents.write.single.name",
Description: ptr.P("Write documents permission"),
})

// Verify key has no permissions initially
Expand All @@ -73,7 +72,7 @@ func TestSuccess(t *testing.T) {

req := handler.Request{
KeyId: keyID,
Permissions: []string{permissionSlug},
Permissions: []string{permission.Name},
}

res := testutil.CallRoute[handler.Request, handler.Response](
Expand All @@ -87,14 +86,14 @@ func TestSuccess(t *testing.T) {
require.NotNil(t, res.Body)
require.NotNil(t, res.Body.Data)
require.Len(t, res.Body.Data, 1)
require.Equal(t, permissionID, res.Body.Data[0].Id)
require.Equal(t, permission.ID, res.Body.Data[0].Id)
require.Equal(t, "documents.write.single.name", res.Body.Data[0].Name)

// Verify permission was added to key
finalPermissions, err := db.Query.ListDirectPermissionsByKeyID(ctx, h.DB.RO(), keyID)
require.NoError(t, err)
require.Len(t, finalPermissions, 1)
require.Equal(t, permissionID, finalPermissions[0].ID)
require.Equal(t, permission.ID, finalPermissions[0].ID)
})

t.Run("add multiple permissions", func(t *testing.T) {
Expand All @@ -117,27 +116,23 @@ func TestSuccess(t *testing.T) {
keyID := keyResponse.KeyID

// Create permissions using testutil helper
permission1Name := "documents.read.multiple"
permissionDescription1 := "Read documents permission"
permission1ID := h.CreatePermission(seed.CreatePermissionRequest{
permission1 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission1Name,
Slug: permission1Name,
Description: &permissionDescription1,
Name: "documents.read.multiple",
Slug: "documents.read.multiple",
Description: ptr.P("Read documents permission"),
})

permission2Slug := "documents.write.multiple"
permissionDescription2 := "Write documents permission"
permission2ID := h.CreatePermission(seed.CreatePermissionRequest{
permission2 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission2Slug,
Slug: permission2Slug,
Description: &permissionDescription2,
Name: "documents.write.multiple",
Slug: "documents.write.multiple",
Description: ptr.P("Write documents permission"),
})

req := handler.Request{
KeyId: keyID,
Permissions: []string{permission1Name, permission2Slug},
Permissions: []string{permission1.Name, permission2.Name},
}

res := testutil.CallRoute[handler.Request, handler.Response](
Expand All @@ -162,8 +157,8 @@ func TestSuccess(t *testing.T) {
}

// Verify both permissions are in response
require.True(t, contains(permission1ID))
require.True(t, contains(permission2ID))
require.True(t, contains(permission1.ID))
require.True(t, contains(permission2.ID))

// Verify permissions were added to key
finalPermissions, err := db.Query.ListDirectPermissionsByKeyID(ctx, h.DB.RO(), keyID)
Expand Down Expand Up @@ -250,11 +245,10 @@ func TestSuccess(t *testing.T) {
// Create permissions using testutil helper
existingPermissionDescription := "Read documents permission"
newPermissionDescription := "Write documents permission"
newPermissionSlug := "documents.write.existing"
newPermissionID := h.CreatePermission(seed.CreatePermissionRequest{
newPermission := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: newPermissionSlug,
Slug: newPermissionSlug,
Name: "documents.write.existing",
Slug: "documents.write.existing",
Description: &newPermissionDescription,
})

Expand All @@ -277,7 +271,7 @@ func TestSuccess(t *testing.T) {

req := handler.Request{
KeyId: keyID,
Permissions: []string{newPermissionSlug},
Permissions: []string{newPermission.Name},
}

res := testutil.CallRoute[handler.Request, handler.Response](
Expand All @@ -298,7 +292,7 @@ func TestSuccess(t *testing.T) {
permissionIDs[p.Id] = true
}
require.True(t, permissionIDs[keyResponse.PermissionIds[0]])
require.True(t, permissionIDs[newPermissionID])
require.True(t, permissionIDs[newPermission.ID])

// Verify permissions in database
finalPermissions, err := db.Query.ListDirectPermissionsByKeyID(ctx, h.DB.RO(), keyID)
Expand Down
4 changes: 2 additions & 2 deletions go/apps/api/routes/v2_keys_add_roles/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ func TestSuccess(t *testing.T) {
})

adminName := "admin_idempotent"
adminId := h.CreateRole(seed.CreateRoleRequest{
admin := h.CreateRole(seed.CreateRoleRequest{
WorkspaceID: workspace.ID,
Name: adminName,
Description: ptr.P("admin_idempotent"),
Expand All @@ -112,7 +112,7 @@ func TestSuccess(t *testing.T) {
// First, add admin role to the key
err := db.Query.InsertKeyRole(ctx, h.DB.RW(), db.InsertKeyRoleParams{
KeyID: key.KeyID,
RoleID: adminId,
RoleID: admin.ID,
WorkspaceID: workspace.ID,
CreatedAtM: time.Now().UnixMilli(),
})
Expand Down
4 changes: 2 additions & 2 deletions go/apps/api/routes/v2_keys_get_key/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestGetKeyByKeyID(t *testing.T) {
})

// Create test identity with ratelimit using testutil helper
identityID := h.CreateIdentity(seed.CreateIdentityRequest{
identity := h.CreateIdentity(seed.CreateIdentityRequest{
WorkspaceID: workspace.ID,
ExternalID: "test_user",
Meta: []byte(`{"role": "admin"}`),
Expand All @@ -66,7 +66,7 @@ func TestGetKeyByKeyID(t *testing.T) {
WorkspaceID: workspace.ID,
KeyAuthID: api.KeyAuthID.String,
Name: &keyName,
IdentityID: &identityID,
IdentityID: &identity.ID,
})
keyID := key.KeyID
// key := keyResponse.Key
Expand Down
20 changes: 10 additions & 10 deletions go/apps/api/routes/v2_keys_remove_permissions/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ func TestSuccess(t *testing.T) {
// Create permissions using testutil helpers
permission1Description := "Read documents permission"
permission1Name := "documents.read.remove.multiple"
permission1ID := h.CreatePermission(seed.CreatePermissionRequest{
permission1 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission1Name,
Slug: permission1Name,
Expand All @@ -123,7 +123,7 @@ func TestSuccess(t *testing.T) {

permission2Description := "Write documents permission"
permission2Name := "documents.write.remove.multiple"
permission2ID := h.CreatePermission(seed.CreatePermissionRequest{
permission2 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission2Name,
Slug: permission2Name,
Expand All @@ -133,15 +133,15 @@ func TestSuccess(t *testing.T) {
// Add both permissions to key first
err := db.Query.InsertKeyPermission(ctx, h.DB.RW(), db.InsertKeyPermissionParams{
KeyID: keyID,
PermissionID: permission1ID,
PermissionID: permission1.ID,
WorkspaceID: workspace.ID,
CreatedAt: time.Now().UnixMilli(),
})
require.NoError(t, err)

err = db.Query.InsertKeyPermission(ctx, h.DB.RW(), db.InsertKeyPermissionParams{
KeyID: keyID,
PermissionID: permission2ID,
PermissionID: permission2.ID,
WorkspaceID: workspace.ID,
CreatedAt: time.Now().UnixMilli(),
})
Expand Down Expand Up @@ -333,7 +333,7 @@ func TestSuccess(t *testing.T) {
// Create multiple permissions using testutil helpers
permission1Description := "Read documents permission"
permission1Name := "documents.read.remove.all.1"
permission1ID := h.CreatePermission(seed.CreatePermissionRequest{
permission1 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission1Name,
Slug: permission1Name,
Expand All @@ -342,7 +342,7 @@ func TestSuccess(t *testing.T) {

permission2Description := "Write documents permission"
permission2Name := "documents.write.remove.all.2"
permission2ID := h.CreatePermission(seed.CreatePermissionRequest{
permission2 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission2Name,
Slug: permission2Name,
Expand All @@ -351,7 +351,7 @@ func TestSuccess(t *testing.T) {

permission3Description := "Delete documents permission"
permission3Name := "documents.delete.remove.all.3"
permission3ID := h.CreatePermission(seed.CreatePermissionRequest{
permission3 := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: permission3Name,
Slug: permission3Name,
Expand All @@ -361,23 +361,23 @@ func TestSuccess(t *testing.T) {
// Add all permissions to key
err := db.Query.InsertKeyPermission(ctx, h.DB.RW(), db.InsertKeyPermissionParams{
KeyID: keyID,
PermissionID: permission1ID,
PermissionID: permission1.ID,
WorkspaceID: workspace.ID,
CreatedAt: time.Now().UnixMilli(),
})
require.NoError(t, err)

err = db.Query.InsertKeyPermission(ctx, h.DB.RW(), db.InsertKeyPermissionParams{
KeyID: keyID,
PermissionID: permission2ID,
PermissionID: permission2.ID,
WorkspaceID: workspace.ID,
CreatedAt: time.Now().UnixMilli(),
})
require.NoError(t, err)

err = db.Query.InsertKeyPermission(ctx, h.DB.RW(), db.InsertKeyPermissionParams{
KeyID: keyID,
PermissionID: permission3ID,
PermissionID: permission3.ID,
WorkspaceID: workspace.ID,
CreatedAt: time.Now().UnixMilli(),
})
Expand Down
4 changes: 2 additions & 2 deletions go/apps/api/routes/v2_keys_remove_permissions/404_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestNotFoundErrors(t *testing.T) {
t.Run("key not found", func(t *testing.T) {
// Create a permission that exists using testutil helper
permissionDescription := "Read documents permission"
permissionID := h.CreatePermission(seed.CreatePermissionRequest{
permission := h.CreatePermission(seed.CreatePermissionRequest{
WorkspaceID: workspace.ID,
Name: "documents.read.remove.404keynotfound",
Slug: "documents.read.remove.404keynotfound",
Expand All @@ -58,7 +58,7 @@ func TestNotFoundErrors(t *testing.T) {

req := handler.Request{
KeyId: nonExistentKeyID,
Permissions: []string{permissionID},
Permissions: []string{permission.ID},
}

res := testutil.CallRoute[handler.Request, openapi.NotFoundErrorResponse](
Expand Down
4 changes: 2 additions & 2 deletions go/apps/api/routes/v2_keys_reroll_key/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func TestRerollKeySuccess(t *testing.T) {

workspace := h.Resources().UserWorkspace

identityID := h.CreateIdentity(seed.CreateIdentityRequest{
identity := h.CreateIdentity(seed.CreateIdentityRequest{
WorkspaceID: workspace.ID,
ExternalID: "test_123",
Meta: []byte(`{"name": "Test User"}`),
Expand Down Expand Up @@ -73,7 +73,7 @@ func TestRerollKeySuccess(t *testing.T) {
Disabled: false,
KeyAuthID: api.KeyAuthID.String,
Remaining: ptr.P(int32(16)),
IdentityID: ptr.P(identityID),
IdentityID: ptr.P(identity.ID),
Meta: nil,
Expires: nil,
Name: ptr.P("Test-Key"),
Expand Down
6 changes: 3 additions & 3 deletions go/apps/api/routes/v2_keys_verify_key/200_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -610,7 +610,7 @@ func TestSuccess(t *testing.T) {
key := h.CreateKey(seed.CreateKeyRequest{
WorkspaceID: workspace.ID,
KeyAuthID: api.KeyAuthID.String,
IdentityID: ptr.P(identity),
IdentityID: ptr.P(identity.ID),
})

req := handler.Request{
Expand Down Expand Up @@ -645,7 +645,7 @@ func TestSuccess(t *testing.T) {
key := h.CreateKey(seed.CreateKeyRequest{
WorkspaceID: workspace.ID,
KeyAuthID: api.KeyAuthID.String,
IdentityID: ptr.P(identity),
IdentityID: ptr.P(identity.ID),
Name: ptr.P(keyName),
Roles: []seed.CreateRoleRequest{{
Name: "read-writer",
Expand Down Expand Up @@ -682,7 +682,7 @@ func TestSuccess(t *testing.T) {
require.True(t, res.Body.Data.Valid, "Key should be valid but got %t", res.Body.Data.Valid)
require.Len(t, ptr.SafeDeref(res.Body.Data.Roles), 1, "Key should have 1 role")
require.Len(t, ptr.SafeDeref(res.Body.Data.Permissions), 3, "Key should have 3 permissions")
require.EqualValues(t, openapi.Identity{Id: identity, ExternalId: externalId, Meta: &meta, Ratelimits: nil}, ptr.SafeDeref(res.Body.Data.Identity))
require.EqualValues(t, openapi.Identity{Id: identity.ID, ExternalId: externalId, Meta: &meta, Ratelimits: nil}, ptr.SafeDeref(res.Body.Data.Identity))
require.Equal(t, keyName, ptr.SafeDeref(res.Body.Data.Name), "Key should have the same name")
})

Expand Down
4 changes: 2 additions & 2 deletions go/apps/api/routes/v2_keys_verify_key/412_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func TestPreconditionFailed(t *testing.T) {
key := h.CreateKey(seed.CreateKeyRequest{
WorkspaceID: workspace.ID,
KeyAuthID: api.KeyAuthID.String,
IdentityID: ptr.P(identity),
IdentityID: ptr.P(identity.ID),
})

req := handler.Request{
Expand All @@ -70,7 +70,7 @@ func TestPreconditionFailed(t *testing.T) {
// Should contain useful error message about missing ratelimit for key and identity
expectedMsg := fmt.Sprintf("ratelimit 'does-not-exist' was requested but does not exist for key '%s' nor identity", key.KeyID)
require.Contains(t, res.Body.Error.Detail, expectedMsg)
require.Contains(t, res.Body.Error.Detail, identity)
require.Contains(t, res.Body.Error.Detail, identity.ID)
require.Contains(t, res.Body.Error.Detail, "test-missing-ratelimit")
})

Expand Down
Loading