| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- package gorm_test
- import (
- "testing"
- "time"
- "github.com/go-test/deep"
- "github.com/porter-dev/porter/internal/models"
- ints "github.com/porter-dev/porter/internal/models/integrations"
- "gorm.io/gorm"
- orm "gorm.io/gorm"
- )
- func TestCreateHelmRepo(t *testing.T) {
- tester := &tester{
- dbFileName: "./porter_create_hr.db",
- }
- setupTestEnv(tester, t)
- initProject(tester, t)
- defer cleanup(tester, t)
- hr := &models.HelmRepo{
- Name: "helm-repo-test",
- RepoURL: "https://example-repo.com",
- ProjectID: tester.initProjects[0].Model.ID,
- }
- hr, err := tester.repo.HelmRepo().CreateHelmRepo(hr)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- hr, err = tester.repo.HelmRepo().ReadHelmRepo(tester.initProjects[0].Model.ID, hr.Model.ID)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- // make sure id is 1 and name is "registry-test"
- if hr.Model.ID != 1 {
- t.Errorf("incorrect registry ID: expected %d, got %d\n", 1, hr.Model.ID)
- }
- if hr.Name != "helm-repo-test" {
- t.Errorf("incorrect helm repo name: expected %s, got %s\n", "helm-repo-test", hr.Name)
- }
- if hr.RepoURL != "https://example-repo.com" {
- t.Errorf("incorrect helm repo url: expected %s, got %s\n", "https://example-repo.com", hr.RepoURL)
- }
- }
- func TestListHelmReposByProjectID(t *testing.T) {
- tester := &tester{
- dbFileName: "./porter_list_hrs.db",
- }
- setupTestEnv(tester, t)
- initProject(tester, t)
- initHelmRepo(tester, t)
- defer cleanup(tester, t)
- hrs, err := tester.repo.HelmRepo().ListHelmReposByProjectID(
- tester.initProjects[0].Model.ID,
- )
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- if len(hrs) != 1 {
- t.Fatalf("length of helm repos incorrect: expected %d, got %d\n", 1, len(hrs))
- }
- // make sure data is correct
- expHelmRepo := models.HelmRepo{
- Name: "helm-repo-test",
- RepoURL: "https://example-repo.com",
- ProjectID: tester.initProjects[0].Model.ID,
- }
- hr := hrs[0]
- // reset fields for reflect.DeepEqual
- hr.Model = gorm.Model{}
- if diff := deep.Equal(expHelmRepo, *hr); diff != nil {
- t.Errorf("incorrect helm repo")
- t.Error(diff)
- }
- }
- func TestUpdateHelmRepo(t *testing.T) {
- tester := &tester{
- dbFileName: "./porter_update_hr.db",
- }
- setupTestEnv(tester, t)
- initProject(tester, t)
- initHelmRepo(tester, t)
- defer cleanup(tester, t)
- hr := tester.initHRs[0]
- hr.Name = "helm-repo-new-name"
- hr, err := tester.repo.HelmRepo().UpdateHelmRepo(
- hr,
- )
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- hr, err = tester.repo.HelmRepo().ReadHelmRepo(tester.initProjects[0].Model.ID, tester.initHRs[0].ID)
- // make sure data is correct
- expHelmRepo := models.HelmRepo{
- Name: "helm-repo-new-name",
- RepoURL: "https://example-repo.com",
- ProjectID: tester.initProjects[0].Model.ID,
- }
- // reset fields for reflect.DeepEqual
- hr.Model = orm.Model{}
- if diff := deep.Equal(expHelmRepo, *hr); diff != nil {
- t.Errorf("incorrect helm repo")
- t.Error(diff)
- }
- }
- func TestUpdateHelmRepoToken(t *testing.T) {
- tester := &tester{
- dbFileName: "./porter_test_update_hr_token.db",
- }
- setupTestEnv(tester, t)
- initProject(tester, t)
- defer cleanup(tester, t)
- hr := &models.HelmRepo{
- Name: "helm-repo-test",
- RepoURL: "https://example-repo.com",
- ProjectID: tester.initProjects[0].Model.ID,
- TokenCache: ints.HelmRepoTokenCache{
- TokenCache: ints.TokenCache{
- Token: []byte("token-1"),
- Expiry: time.Now().Add(-1 * time.Hour),
- },
- },
- }
- hr, err := tester.repo.HelmRepo().CreateHelmRepo(hr)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- hr, err = tester.repo.HelmRepo().ReadHelmRepo(tester.initProjects[0].Model.ID, hr.Model.ID)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- // make sure helm repo id of token is 1
- if hr.TokenCache.HelmRepoID != 1 {
- t.Fatalf("incorrect helm repo id in token cache: expected %d, got %d\n", 1, hr.TokenCache.HelmRepoID)
- }
- // make sure old token is expired
- if isExpired := hr.TokenCache.IsExpired(); !isExpired {
- t.Fatalf("token was not expired\n")
- }
- if string(hr.TokenCache.Token) != "token-1" {
- t.Errorf("incorrect token in cache: expected %s, got %s\n", "token-1", hr.TokenCache.Token)
- }
- hr.TokenCache.Token = []byte("token-2")
- hr.TokenCache.Expiry = time.Now().Add(24 * time.Hour)
- hr, err = tester.repo.HelmRepo().UpdateHelmRepoTokenCache(&hr.TokenCache)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- hr, err = tester.repo.HelmRepo().ReadHelmRepo(tester.initProjects[0].Model.ID, hr.Model.ID)
- if err != nil {
- t.Fatalf("%v\n", err)
- }
- // make sure id is 1
- if hr.Model.ID != 1 {
- t.Errorf("incorrect helm repo ID: expected %d, got %d\n", 1, hr.Model.ID)
- }
- // make sure new token is correct and not expired
- if hr.TokenCache.HelmRepoID != 1 {
- t.Fatalf("incorrect helm repo ID in token cache: expected %d, got %d\n", 1, hr.TokenCache.HelmRepoID)
- }
- if isExpired := hr.TokenCache.IsExpired(); isExpired {
- t.Fatalf("token was expired\n")
- }
- if string(hr.TokenCache.Token) != "token-2" {
- t.Errorf("incorrect token in cache: expected %s, got %s\n", "token-2", hr.TokenCache.Token)
- }
- }
- // func TestDeleteRegistry(t *testing.T) {
- // tester := &tester{
- // dbFileName: "./porter_delete_registry.db",
- // }
- // setupTestEnv(tester, t)
- // initProject(tester, t)
- // initRegistry(tester, t)
- // defer cleanup(tester, t)
- // reg, err := tester.repo.Registry().ReadRegistry(tester.initRegs[0].Model.ID)
- // if err != nil {
- // t.Fatalf("%v\n", err)
- // }
- // err = tester.repo.Registry().DeleteRegistry(reg)
- // if err != nil {
- // t.Fatalf("%v\n", err)
- // }
- // _, err = tester.repo.Registry().ReadRegistry(tester.initRegs[0].Model.ID)
- // if err != orm.ErrRecordNotFound {
- // t.Fatalf("incorrect error: expected %v, got %v\n", orm.ErrRecordNotFound, err)
- // }
- // regs, err := tester.repo.Registry().ListRegistriesByProjectID(tester.initProjects[0].Model.ID)
- // if err != nil {
- // t.Fatalf("%v\n", err)
- // }
- // if len(regs) != 0 {
- // t.Fatalf("length of clusters was not 0")
- // }
- // }
|