infra_test.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package gorm_test
  2. import (
  3. "testing"
  4. "gorm.io/gorm"
  5. "github.com/go-test/deep"
  6. "github.com/porter-dev/porter/api/types"
  7. "github.com/porter-dev/porter/internal/models"
  8. )
  9. func TestCreateInfra(t *testing.T) {
  10. tester := &tester{
  11. dbFileName: "./porter_create_aws_infra.db",
  12. }
  13. setupTestEnv(tester, t)
  14. initProject(tester, t)
  15. defer cleanup(tester, t)
  16. infra := &models.Infra{
  17. Kind: types.InfraECR,
  18. ProjectID: tester.initProjects[0].Model.ID,
  19. Status: types.StatusCreated,
  20. }
  21. infra, err := tester.repo.Infra().CreateInfra(infra)
  22. if err != nil {
  23. t.Fatalf("%v\n", err)
  24. }
  25. infra, err = tester.repo.Infra().ReadInfra(tester.initProjects[0].Model.ID, infra.Model.ID)
  26. if err != nil {
  27. t.Fatalf("%v\n", err)
  28. }
  29. // make sure id is 1 and name is "ecr"
  30. if infra.Model.ID != 1 {
  31. t.Errorf("incorrect registry ID: expected %d, got %d\n", 1, infra.Model.ID)
  32. }
  33. if infra.Kind != types.InfraECR {
  34. t.Errorf("incorrect aws infra kind: expected %s, got %s\n", types.InfraECR, infra.Kind)
  35. }
  36. if infra.Status != types.StatusCreated {
  37. t.Errorf("incorrect aws infra status: expected %s, got %s\n", types.StatusCreated, infra.Status)
  38. }
  39. }
  40. func TestListInfrasByProjectID(t *testing.T) {
  41. tester := &tester{
  42. dbFileName: "./porter_list_aws_infras.db",
  43. }
  44. setupTestEnv(tester, t)
  45. initProject(tester, t)
  46. initInfra(tester, t)
  47. defer cleanup(tester, t)
  48. infras, err := tester.repo.Infra().ListInfrasByProjectID(
  49. tester.initProjects[0].Model.ID,
  50. "",
  51. )
  52. if err != nil {
  53. t.Fatalf("%v\n", err)
  54. }
  55. if len(infras) != 1 {
  56. t.Fatalf("length of aws infras incorrect: expected %d, got %d\n", 1, len(infras))
  57. }
  58. // make sure data is correct
  59. expInfra := models.Infra{
  60. Kind: "ecr",
  61. ProjectID: tester.initProjects[0].Model.ID,
  62. Status: types.StatusCreated,
  63. }
  64. infra := infras[0]
  65. // reset fields for reflect.DeepEqual
  66. infra.Model = gorm.Model{}
  67. if diff := deep.Equal(expInfra, *infra); diff != nil {
  68. t.Errorf("incorrect aws infra")
  69. t.Error(diff)
  70. }
  71. }