session_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package session
  2. import (
  3. "database/sql"
  4. "regexp"
  5. "testing"
  6. "time"
  7. "github.com/DATA-DOG/go-sqlmock"
  8. "github.com/porter-dev/porter/internal/models"
  9. "github.com/stretchr/testify/require"
  10. "github.com/stretchr/testify/suite"
  11. "github.com/jinzhu/gorm"
  12. )
  13. type Suite struct {
  14. suite.Suite
  15. DB *gorm.DB
  16. mock sqlmock.Sqlmock
  17. repository Repository
  18. session *models.Session
  19. }
  20. func (s *Suite) SetupSuite() {
  21. var (
  22. db *sql.DB
  23. err error
  24. )
  25. db, s.mock, err = sqlmock.New()
  26. require.NoError(s.T(), err)
  27. s.DB, err = gorm.Open("postgres", db)
  28. require.NoError(s.T(), err)
  29. s.DB.LogMode(true)
  30. // s.repository = CreateRepository(s.DB)
  31. }
  32. func (s *Suite) AfterTest(_, _ string) {
  33. require.NoError(s.T(), s.mock.ExpectationsWereMet())
  34. }
  35. func TestInit(t *testing.T) {
  36. suite.Run(t, new(Suite))
  37. }
  38. func (s *Suite) TestShouldCreateNewSession(t *testing.T) {
  39. var (
  40. key = "onekey"
  41. data = []byte("onedata")
  42. expiresAt = time.Now()
  43. )
  44. s.mock.ExpectQuery(regexp.QuoteMeta(
  45. `INSERT INTO "sessions" ("key","data","expires_at")
  46. VALUES ($1,$2, $3) RETURNING "key"."data"."expires_at`)).
  47. WithArgs(key, data, expiresAt).
  48. WillReturnRows(
  49. sqlmock.NewRows([]string{"key"}).AddRow(key))
  50. // db.AutoMigrate(&models.Session{})
  51. // defer db.Close()
  52. // test function
  53. _, err := CreateSession(s.DB, &models.Session{Key: key, Data: data, ExpiresAt: expiresAt})
  54. require.NoError(s.T(), err)
  55. // db.Migrator().DropTable(&models.Session{})
  56. }
  57. // func TestShouldUpdateSessionByKey(t *testing.T) {
  58. // db, _ := dbConn.New()
  59. // // db.AutoMigrate(&models.Session{})
  60. // // defer db.Close()
  61. // // test function
  62. // UpdateSession(db, &models.Session{Key: "hia", Data: []byte("pls"), ExpiresAt: time.Now()})
  63. // // db.Migrator().DropTable(&models.Session{})
  64. // }
  65. // func TestShouldDeleteSessionByKey(t *testing.T) {
  66. // db, _ := dbConn.New()
  67. // // db.AutoMigrate(&models.Session{})
  68. // // defer db.Close()
  69. // // test function
  70. // DeleteSession(db, &models.Session{Key: "hia"})
  71. // // db.Migrator().DropTable(&models.Session{})
  72. // }
  73. // func TestShoudSelectSessionByKey(t *testing.T) {
  74. // db, _ := dbConn.New()
  75. // // db.AutoMigrate(&models.Session{})
  76. // // defer db.Close()
  77. // // test function
  78. // SelectSession(db, &models.Session{Key: "hi"})
  79. // // db.Migrator().DropTable(&models.Session{})
  80. // }