infra_test.go 1.9 KB

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