config.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package apitest
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/porter-dev/porter/api/server/shared/config"
  6. "github.com/porter-dev/porter/api/server/shared/config/envloader"
  7. "github.com/porter-dev/porter/internal/analytics"
  8. "github.com/porter-dev/porter/internal/auth/sessionstore"
  9. "github.com/porter-dev/porter/internal/auth/token"
  10. "github.com/porter-dev/porter/internal/billing"
  11. "github.com/porter-dev/porter/internal/repository/test"
  12. "github.com/porter-dev/porter/pkg/logger"
  13. )
  14. type TestConfigLoader struct {
  15. canQuery bool
  16. failingRepoMethods []string
  17. }
  18. func NewTestConfigLoader(canQuery bool, failingRepoMethods ...string) config.ConfigLoader {
  19. return &TestConfigLoader{canQuery, failingRepoMethods}
  20. }
  21. func (t *TestConfigLoader) LoadConfig() (*config.Config, error) {
  22. l := logger.New(true, os.Stdout)
  23. repo := test.NewRepository(t.canQuery, t.failingRepoMethods...)
  24. envConf, err := envloader.FromEnv()
  25. if err != nil {
  26. return nil, err
  27. }
  28. store, err := sessionstore.NewStore(
  29. &sessionstore.NewStoreOpts{
  30. SessionRepository: repo.Session(),
  31. CookieSecrets: envConf.ServerConf.CookieSecrets,
  32. },
  33. )
  34. if err != nil {
  35. return nil, err
  36. }
  37. tokenConf := &token.TokenGeneratorConf{
  38. TokenSecret: envConf.ServerConf.TokenGeneratorSecret,
  39. }
  40. notifier := NewFakeUserNotifier()
  41. return &config.Config{
  42. Logger: l,
  43. Repo: repo,
  44. Store: store,
  45. ServerConf: envConf.ServerConf,
  46. TokenConf: tokenConf,
  47. UserNotifier: notifier,
  48. AnalyticsClient: analytics.InitializeAnalyticsSegmentClient("", l),
  49. BillingManager: &billing.NoopBillingManager{},
  50. }, nil
  51. }
  52. func LoadConfig(t *testing.T, failingRepoMethods ...string) *config.Config {
  53. configLoader := NewTestConfigLoader(true, failingRepoMethods...)
  54. config, err := configLoader.LoadConfig()
  55. if err != nil {
  56. t.Fatal(err)
  57. }
  58. return config
  59. }