Path: blob/main/components/gitpod-db/go/project_test.go
2497 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 db_test56import (7"fmt"8"strings"9"testing"1011db "github.com/gitpod-io/gitpod/components/gitpod-db/go"1213"github.com/gitpod-io/gitpod/components/gitpod-db/go/dbtest"14"github.com/google/uuid"15"github.com/stretchr/testify/require"16"gorm.io/gorm"17)1819var projectJSON = map[string]interface{}{20"id": uuid.New().String(),21"cloneUrl": "https://github.com/gptest1/gptest1-repo1-private.git",22"teamId": "0e433063-1358-4892-9ed2-68e273d17d07",23"appInstallationId": "20446411",24"creationTime": "2021-11-01T19:36:07.532Z",25"_lastModified": "2021-11-02 10:49:12.473658",26"name": "gptest1-repo1-private",27"markedDeleted": 1,28"userId": nil,29"slug": "gptest1-repo1-private",30"settings": nil,31}3233func TestProject_ReadExistingRecords(t *testing.T) {34conn := dbtest.ConnectForTests(t)3536id := insertRawProject(t, conn, projectJSON)3738project := db.Project{ID: id}39tx := conn.First(&project)40require.NoError(t, tx.Error)4142require.Equal(t, id, project.ID)43require.Equal(t, projectJSON["teamId"], project.TeamID.String)44require.Equal(t, stringToVarchar(t, "2021-11-01T19:36:07.532Z"), project.CreationTime)45require.NoError(t, conn.Where("id = ?", project.ID).Delete(&db.Project{}).Error)46}4748func insertRawProject(t *testing.T, conn *gorm.DB, obj map[string]interface{}) uuid.UUID {49columns := []string{50"id", "cloneUrl", "teamId", "appInstallationId", "creationTime", "_lastModified", "name", "markedDeleted", "userId", "slug", "settings",51}52statement := fmt.Sprintf(`INSERT INTO d_b_project (%s) VALUES ?;`, strings.Join(columns, ", "))53id := uuid.MustParse(obj["id"].(string))5455var values []interface{}56for _, col := range columns {57val, ok := obj[col]58if !ok {59values = append(values, "null")60} else {61values = append(values, val)62}63}6465tx := conn.Exec(statement, values)66require.NoError(t, tx.Error)6768return id69}707172