gitrepo_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package gorm_test
  2. import (
  3. "testing"
  4. "github.com/go-test/deep"
  5. "github.com/porter-dev/porter/internal/models"
  6. orm "gorm.io/gorm"
  7. )
  8. func TestCreateGitRepo(t *testing.T) {
  9. tester := &tester{
  10. dbFileName: "./porter_create_gr.db",
  11. }
  12. setupTestEnv(tester, t)
  13. initUser(tester, t)
  14. initProject(tester, t)
  15. initOAuthIntegration(tester, t)
  16. defer cleanup(tester, t)
  17. gr := &models.GitRepo{
  18. ProjectID: tester.initProjects[0].ID,
  19. RepoEntity: "porter-dev",
  20. OAuthIntegrationID: tester.initOAuths[0].ID,
  21. }
  22. expGR := *gr
  23. gr, err := tester.repo.GitRepo().CreateGitRepo(gr)
  24. if err != nil {
  25. t.Fatalf("%v\n", err)
  26. }
  27. gr, err = tester.repo.GitRepo().ReadGitRepo(gr.Model.ID)
  28. if err != nil {
  29. t.Fatalf("%v\n", err)
  30. }
  31. // make sure id is 1
  32. if gr.Model.ID != 1 {
  33. t.Errorf("incorrect git repo ID: expected %d, got %d\n", 1, gr.Model.ID)
  34. }
  35. // reset fields for reflect.DeepEqual
  36. gr.Model = orm.Model{}
  37. if diff := deep.Equal(expGR, *gr); diff != nil {
  38. t.Errorf("incorrect git repo")
  39. t.Error(diff)
  40. }
  41. }
  42. func TestListGitReposByProjectID(t *testing.T) {
  43. tester := &tester{
  44. dbFileName: "./porter_list_grs.db",
  45. }
  46. setupTestEnv(tester, t)
  47. initGitRepo(tester, t)
  48. defer cleanup(tester, t)
  49. grs, err := tester.repo.GitRepo().ListGitReposByProjectID(
  50. tester.initProjects[0].Model.ID,
  51. )
  52. if err != nil {
  53. t.Fatalf("%v\n", err)
  54. }
  55. if len(grs) != 1 {
  56. t.Fatalf("length of oidc integrations incorrect: expected %d, got %d\n", 1, len(grs))
  57. }
  58. // make sure data is correct
  59. expGR := models.GitRepo{
  60. ProjectID: tester.initProjects[0].ID,
  61. RepoEntity: "porter-dev",
  62. OAuthIntegrationID: tester.initOAuths[0].ID,
  63. }
  64. gr := grs[0]
  65. // reset fields for reflect.DeepEqual
  66. gr.Model = orm.Model{}
  67. if diff := deep.Equal(expGR, *gr); diff != nil {
  68. t.Errorf("incorrect git repo")
  69. t.Error(diff)
  70. }
  71. }
  72. func TestUpdateGitRepo(t *testing.T) {
  73. tester := &tester{
  74. dbFileName: "./porter_update_gr.db",
  75. }
  76. setupTestEnv(tester, t)
  77. initProject(tester, t)
  78. initGitRepo(tester, t)
  79. defer cleanup(tester, t)
  80. gr := tester.initGRs[0]
  81. gr.RepoEntity = "porter-dev-new-name"
  82. gr, err := tester.repo.GitRepo().UpdateGitRepo(
  83. gr,
  84. )
  85. if err != nil {
  86. t.Fatalf("%v\n", err)
  87. }
  88. gr, err = tester.repo.GitRepo().ReadGitRepo(tester.initGRs[0].ID)
  89. // make sure data is correct
  90. expGR := models.GitRepo{
  91. RepoEntity: "porter-dev-new-name",
  92. ProjectID: tester.initProjects[0].Model.ID,
  93. OAuthIntegrationID: tester.initOAuths[0].ID,
  94. }
  95. // reset fields for reflect.DeepEqual
  96. gr.Model = orm.Model{}
  97. if diff := deep.Equal(expGR, *gr); diff != nil {
  98. t.Errorf("incorrect git repo")
  99. t.Error(diff)
  100. }
  101. }