2
0

config.go 2.0 KB

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