config.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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/loader"
  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/logger"
  11. "github.com/porter-dev/porter/internal/repository/test"
  12. )
  13. type TestConfigLoader struct {
  14. canQuery bool
  15. failingRepoMethods []string
  16. }
  17. func NewTestConfigLoader(canQuery bool, failingRepoMethods ...string) config.ConfigLoader {
  18. return &TestConfigLoader{canQuery, failingRepoMethods}
  19. }
  20. func (t *TestConfigLoader) LoadConfig() (*config.Config, error) {
  21. l := logger.New(true, os.Stdout)
  22. repo := test.NewRepository(t.canQuery, t.failingRepoMethods...)
  23. envConf, err := loader.FromEnv()
  24. if err != nil {
  25. return nil, err
  26. }
  27. store, err := sessionstore.NewStore(
  28. &sessionstore.NewStoreOpts{
  29. SessionRepository: repo.Session(),
  30. CookieSecrets: envConf.ServerConf.CookieSecrets,
  31. },
  32. )
  33. if err != nil {
  34. return nil, err
  35. }
  36. tokenConf := &token.TokenGeneratorConf{
  37. TokenSecret: envConf.ServerConf.TokenGeneratorSecret,
  38. }
  39. notifier := NewFakeUserNotifier()
  40. return &config.Config{
  41. Logger: l,
  42. Repo: repo,
  43. Store: store,
  44. ServerConf: envConf.ServerConf,
  45. TokenConf: tokenConf,
  46. UserNotifier: notifier,
  47. AnalyticsClient: analytics.InitializeAnalyticsSegmentClient("", l),
  48. }, nil
  49. }
  50. func LoadConfig(t *testing.T, failingRepoMethods ...string) *config.Config {
  51. configLoader := NewTestConfigLoader(true, failingRepoMethods...)
  52. config, err := configLoader.LoadConfig()
  53. if err != nil {
  54. t.Fatal(err)
  55. }
  56. return config
  57. }