invite_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package gorm_test
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/go-test/deep"
  6. "github.com/porter-dev/porter/internal/models"
  7. "gorm.io/gorm"
  8. )
  9. func TestCreateInvite(t *testing.T) {
  10. tester := &tester{
  11. dbFileName: "./porter_create_invite.db",
  12. }
  13. setupTestEnv(tester, t)
  14. initProject(tester, t)
  15. defer cleanup(tester, t)
  16. expiry := time.Now().Add(24 * time.Hour)
  17. invite := &models.Invite{
  18. Token: "abcd",
  19. Expiry: &expiry,
  20. Email: "testing@test.it",
  21. ProjectID: 1,
  22. }
  23. invite, err := tester.repo.Invite().CreateInvite(invite)
  24. if err != nil {
  25. t.Fatalf("%v\n", err)
  26. }
  27. invite, err = tester.repo.Invite().ReadInvite(1, invite.Model.ID)
  28. if err != nil {
  29. t.Fatalf("%v\n", err)
  30. }
  31. // make sure id is 1, project id is 1 and token is "abcd"
  32. if invite.Model.ID != 1 {
  33. t.Errorf("incorrect invite ID: expected %d, got %d\n", 1, invite.Model.ID)
  34. }
  35. if invite.ProjectID != 1 {
  36. t.Errorf("incorrect invite project ID: expected %d, got %d\n", 1, invite.ProjectID)
  37. }
  38. if invite.Token != "abcd" {
  39. t.Errorf("incorrect token: expected %s, got %s\n", "abcd", invite.Token)
  40. }
  41. if invite.Email != "testing@test.it" {
  42. t.Errorf("incorrect email: expected %s, got %s\n", "testing@test.it", invite.Email)
  43. }
  44. }
  45. func TestListInvitesByProjectID(t *testing.T) {
  46. tester := &tester{
  47. dbFileName: "./porter_list_invites.db",
  48. }
  49. setupTestEnv(tester, t)
  50. initProject(tester, t)
  51. initInvite(tester, t)
  52. defer cleanup(tester, t)
  53. invites, err := tester.repo.Invite().ListInvitesByProjectID(
  54. tester.initProjects[0].Model.ID,
  55. )
  56. if err != nil {
  57. t.Fatalf("%v\n", err)
  58. }
  59. if len(invites) != 1 {
  60. t.Fatalf("length of invites incorrect: expected %d, got %d\n", 1, len(invites))
  61. }
  62. // make sure data is correct
  63. expInvite := models.Invite{
  64. Token: "abcd",
  65. Email: "testing@test.it",
  66. Expiry: &time.Time{},
  67. ProjectID: 1,
  68. }
  69. invite := invites[0]
  70. invite.Expiry = &time.Time{}
  71. // reset fields for reflect.DeepEqual
  72. invite.Model = gorm.Model{}
  73. if diff := deep.Equal(expInvite, *invite); diff != nil {
  74. t.Errorf("incorrect invite")
  75. t.Error(diff)
  76. }
  77. }