فهرست منبع

Patch postgres APIToken query issue (#2606)

* removed unnecessary parameter

* tidy success case test
Stefan McShane 3 سال پیش
والد
کامیت
1071d2fe86
3فایلهای تغییر یافته به همراه52 افزوده شده و 1 حذف شده
  1. 1 1
      internal/repository/gorm/api_token.go
  2. 31 0
      internal/repository/gorm/api_token_test.go
  3. 20 0
      internal/repository/gorm/helpers_test.go

+ 1 - 1
internal/repository/gorm/api_token.go

@@ -27,7 +27,7 @@ func (repo *APITokenRepository) CreateAPIToken(a *models.APIToken) (*models.APIT
 func (repo *APITokenRepository) ListAPITokensByProjectID(projectID uint) ([]*models.APIToken, error) {
 	tokens := []*models.APIToken{}
 
-	if err := repo.db.Where("project_id = ? AND NOT revoked", projectID, true).Find(&tokens).Error; err != nil {
+	if err := repo.db.Where("project_id = ? AND NOT revoked", projectID).Find(&tokens).Error; err != nil {
 		return nil, err
 	}
 

+ 31 - 0
internal/repository/gorm/api_token_test.go

@@ -0,0 +1,31 @@
+package gorm_test
+
+import (
+	"testing"
+)
+
+func TestListAPITokensByProjectID(t *testing.T) {
+	tester := &tester{
+		dbFileName: "./porter_tokens.db",
+	}
+
+	setupTestEnv(tester, t)
+	initProject(tester, t)
+	initAPITokens(tester, t)
+	initMultiUser(tester, t)
+	defer cleanup(tester, t)
+
+	projectID := tester.initProjects[0].Model.ID
+	found, err := tester.repo.APIToken().ListAPITokensByProjectID(projectID)
+	if err != nil {
+		t.Fatalf("%v\n", err)
+	}
+
+	if len(found) != 1 {
+		t.Errorf("expected to find 1 row, found %d", len(found))
+	}
+
+	if found[0].ID != 1 {
+		t.Errorf("expected found to be %d but got: %d", 1, found[0].ID)
+	}
+}

+ 20 - 0
internal/repository/gorm/helpers_test.go

@@ -41,6 +41,7 @@ type tester struct {
 	initAWSs       []*ints.AWSIntegration
 	initAllowlist  []*models.Allowlist
 	initTags       []*models.Tag
+	initAPITokens  []*models.APIToken
 }
 
 func setupTestEnv(tester *tester, t *testing.T) {
@@ -79,6 +80,7 @@ func setupTestEnv(tester *tester, t *testing.T) {
 		&models.Onboarding{},
 		&models.Allowlist{},
 		&models.Tag{},
+		&models.APIToken{},
 		&ints.KubeIntegration{},
 		&ints.BasicIntegration{},
 		&ints.OIDCIntegration{},
@@ -638,3 +640,21 @@ func initKubeEvents(tester *tester, t *testing.T) {
 
 	tester.initKubeEvents = initEvents
 }
+
+func initAPITokens(tester *tester, t *testing.T) {
+	t.Helper()
+
+	ti := time.Now().Add(10 * time.Minute)
+	tokens := &models.APIToken{
+		UniqueID:        "1",
+		ProjectID:       tester.initProjects[0].Model.ID,
+		CreatedByUserID: 1,
+		Expiry:          &ti,
+		Revoked:         false,
+		Name:            "test-key",
+	}
+
+	tester.db.Create(&tokens)
+
+	tester.initAPITokens = append(tester.initAPITokens, tokens)
+}