Path: blob/main/components/gitpod-db/go/dbtest/personal_access_token.go
2500 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package dbtest56import (7"context"8"testing"9"time"1011db "github.com/gitpod-io/gitpod/components/gitpod-db/go"12"github.com/google/uuid"13"github.com/stretchr/testify/require"14"gorm.io/gorm"15)1617func NewPersonalAccessToken(t *testing.T, record db.PersonalAccessToken) db.PersonalAccessToken {18t.Helper()1920now := time.Now().UTC().Round(time.Millisecond)21tokenID := uuid.New()2223result := db.PersonalAccessToken{24ID: tokenID,25UserID: uuid.New(),26Hash: "some-secure-hash",27Name: "some-name",28Scopes: []string{"resource:default", "function:*"},29ExpirationTime: now.Add(5 * time.Hour),30CreatedAt: now,31LastModified: now,32}3334if record.ID != uuid.Nil {35result.ID = record.ID36}3738if record.UserID != uuid.Nil {39result.UserID = record.UserID40}4142if record.Hash != "" {43result.Hash = record.Hash44}4546if record.Name != "" {47result.Name = record.Name48}4950if len(record.Scopes) == 0 {51result.Scopes = record.Scopes52}5354if !record.ExpirationTime.IsZero() {55result.ExpirationTime = record.ExpirationTime56}5758if !record.CreatedAt.IsZero() {59result.CreatedAt = record.CreatedAt60}6162if !record.LastModified.IsZero() {63result.LastModified = record.LastModified64}6566return result67}6869func CreatePersonalAccessTokenRecords(t *testing.T, conn *gorm.DB, entries ...db.PersonalAccessToken) []db.PersonalAccessToken {70t.Helper()7172var records []db.PersonalAccessToken73var ids []string74for _, tokenEntry := range entries {75record := NewPersonalAccessToken(t, tokenEntry)76records = append(records, record)77ids = append(ids, record.ID.String())7879_, err := db.CreatePersonalAccessToken(context.Background(), conn, tokenEntry)80require.NoError(t, err)81}8283t.Cleanup(func() {84if len(ids) > 0 {85require.NoError(t, conn.Where(ids).Delete(&db.PersonalAccessToken{}).Error)86}87})8889return records90}919293