2
0

license_test.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //go:build ee
  2. // +build ee
  3. package pro
  4. import (
  5. "testing"
  6. "github.com/gravitl/netmaker/config"
  7. proLogic "github.com/gravitl/netmaker/pro/logic"
  8. )
  9. func Test_GetAccountsHost(t *testing.T) {
  10. tests := []struct {
  11. name string
  12. envK string
  13. envV string
  14. conf string
  15. want string
  16. }{
  17. {
  18. name: "no env var and no conf",
  19. envK: "NOT_THE_CORRECT_ENV_VAR",
  20. envV: "dev",
  21. want: "https://api.accounts.netmaker.io",
  22. },
  23. {
  24. name: "dev env var",
  25. envK: "ENVIRONMENT",
  26. envV: "dev",
  27. want: "https://api.dev.accounts.netmaker.io",
  28. },
  29. {
  30. name: "staging env var",
  31. envK: "ENVIRONMENT",
  32. envV: "staging",
  33. want: "https://api.staging.accounts.netmaker.io",
  34. },
  35. {
  36. name: "prod env var",
  37. envK: "ENVIRONMENT",
  38. envV: "prod",
  39. want: "https://api.accounts.netmaker.io",
  40. },
  41. {
  42. name: "dev conf",
  43. conf: "dev",
  44. want: "https://api.dev.accounts.netmaker.io",
  45. },
  46. {
  47. name: "staging conf",
  48. conf: "staging",
  49. want: "https://api.staging.accounts.netmaker.io",
  50. },
  51. {
  52. name: "prod conf",
  53. conf: "prod",
  54. want: "https://api.accounts.netmaker.io",
  55. },
  56. {
  57. name: "env var vs conf precedence",
  58. envK: "ENVIRONMENT",
  59. envV: "prod",
  60. conf: "staging",
  61. want: "https://api.accounts.netmaker.io",
  62. },
  63. }
  64. for _, tt := range tests {
  65. t.Run(tt.name, func(t *testing.T) {
  66. config.Config.Server.Environment = tt.conf
  67. if tt.envK != "" {
  68. t.Setenv(tt.envK, tt.envV)
  69. }
  70. if got := proLogic.GetAccountsHost(); got != tt.want {
  71. t.Errorf("GetAccountsHost() = %v, want %v", got, tt.want)
  72. }
  73. })
  74. }
  75. }