server_v1_test.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package settings
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/uozi-tech/cosy/logger"
  7. )
  8. func TestDeprecatedEnvMigration(t *testing.T) {
  9. logger.Init("debug")
  10. // Deprecated
  11. _ = os.Setenv("NGINX_UI_SERVER_HTTP_HOST", "127.0.0.1")
  12. _ = os.Setenv("NGINX_UI_SERVER_HTTP_PORT", "8080")
  13. // _ = os.Setenv("NGINX_UI_SERVER_RUN_MODE", "testing")
  14. _ = os.Setenv("NGINX_UI_SERVER_JWT_SECRET", "newSecret123")
  15. _ = os.Setenv("NGINX_UI_SERVER_NODE_SECRET", "newSercet123")
  16. _ = os.Setenv("NGINX_UI_SERVER_HTTP_CHALLENGE_PORT", "9181")
  17. _ = os.Setenv("NGINX_UI_SERVER_EMAIL", "test")
  18. _ = os.Setenv("NGINX_UI_SERVER_DATABASE", "testDB")
  19. _ = os.Setenv("NGINX_UI_SERVER_START_CMD", "start")
  20. _ = os.Setenv("NGINX_UI_SERVER_CA_DIR", "/test/ca")
  21. _ = os.Setenv("NGINX_UI_SERVER_DEMO", "true")
  22. _ = os.Setenv("NGINX_UI_SERVER_PAGE_SIZE", "20")
  23. _ = os.Setenv("NGINX_UI_SERVER_GITHUB_PROXY", "http://proxy.example.com")
  24. _ = os.Setenv("NGINX_UI_SERVER_CERT_RENEWAL_INTERVAL", "14")
  25. _ = os.Setenv("NGINX_UI_SERVER_RECURSIVE_NAMESERVERS", "8.8.8.8,1.1.1.1")
  26. _ = os.Setenv("NGINX_UI_SERVER_SKIP_INSTALLATION", "true")
  27. _ = os.Setenv("NGINX_UI_SERVER_NAME", "test")
  28. migrateEnv()
  29. assert.Equal(t, "127.0.0.1", os.Getenv("NGINX_UI_SERVER_HOST"))
  30. assert.Equal(t, "8080", os.Getenv("NGINX_UI_SERVER_PORT"))
  31. // assert.Equal(t, "testing", os.Getenv("NGINX_UI_SERVER_RUN_MODE"))
  32. assert.Equal(t, "newSecret123", os.Getenv("NGINX_UI_APP_JWT_SECRET"))
  33. assert.Equal(t, "newSercet123", os.Getenv("NGINX_UI_NODE_SECRET"))
  34. assert.Equal(t, "9181", os.Getenv("NGINX_UI_CERT_HTTP_CHALLENGE_PORT"))
  35. assert.Equal(t, "test", os.Getenv("NGINX_UI_CERT_EMAIL"))
  36. assert.Equal(t, "testDB", os.Getenv("NGINX_UI_DATABASE_NAME"))
  37. assert.Equal(t, "start", os.Getenv("NGINX_UI_TERMINAL_START_CMD"))
  38. assert.Equal(t, "/test/ca", os.Getenv("NGINX_UI_CERT_CA_DIR"))
  39. assert.Equal(t, "true", os.Getenv("NGINX_UI_NODE_DEMO"))
  40. assert.Equal(t, "20", os.Getenv("NGINX_UI_APP_PAGE_SIZE"))
  41. assert.Equal(t, "http://proxy.example.com", os.Getenv("NGINX_UI_HTTP_GITHUB_PROXY"))
  42. assert.Equal(t, "14", os.Getenv("NGINX_UI_CERT_RENEWAL_INTERVAL"))
  43. assert.Equal(t, "8.8.8.8,1.1.1.1", os.Getenv("NGINX_UI_CERT_RECURSIVE_NAMESERVERS"))
  44. assert.Equal(t, "true", os.Getenv("NGINX_UI_NODE_SKIP_INSTALLATION"))
  45. assert.Equal(t, "test", os.Getenv("NGINX_UI_NODE_NAME"))
  46. }
  47. func TestMigration(t *testing.T) {
  48. const confName = "app.testing.ini"
  49. confText := `[server]
  50. HttpPort = 9000
  51. RunMode = debug
  52. JwtSecret = newSecret
  53. Email = test
  54. HTTPChallengePort = 9181
  55. StartCmd = bash
  56. Database = database
  57. CADir = /test
  58. GithubProxy = https://cloud.nginxui.com/
  59. Secret = newSecret
  60. Demo = false
  61. PageSize = 20
  62. HttpHost = 0.0.0.0
  63. CertRenewalInterval = 7
  64. RecursiveNameservers = 8.8.8.8,1.1.1.1
  65. SkipInstallation = false
  66. Name = Local
  67. InsecureSkipVerify = true
  68. [nginx]
  69. AccessLogPath =
  70. ErrorLogPath =
  71. ConfigDir =
  72. PIDPath =
  73. ReloadCmd =
  74. RestartCmd =
  75. TestConfigCmd =
  76. LogDirWhiteList = /var/log/nginx
  77. [openai]
  78. Model = gpt-4o
  79. BaseUrl =
  80. Proxy =
  81. Token =
  82. [casdoor]
  83. Endpoint = http://127.0.0.1:8001
  84. ClientId = 1234567890qwertyuiop
  85. ClientSecret = 1234567890qwertyuiop1234567890qwertyuiop
  86. CertificatePath = ./casdoor.pub
  87. Organization = built-in
  88. Application = nginx-ui-dev
  89. RedirectUri =
  90. [logrotate]
  91. Enabled = true
  92. CMD = logrotate /etc/logrotate.d/nginx
  93. Interval = 1440
  94. [cluster]
  95. Node = http://10.0.0.1:9000?name=test&node_secret=asdfghjklqwertyuiopzxcvbnm&enabled=true
  96. [auth]
  97. IPWhiteList = 127.0.0.1
  98. BanThresholdMinutes = 10
  99. MaxAttempts = 10
  100. [crypto]
  101. Secret = 12345678901234567890
  102. [webauthn]
  103. RPDisplayName = Nginx UI
  104. RPID = localhost
  105. RPOrigins = http://localhost:3002,http://127.0.0.1:3002`
  106. err := os.WriteFile(confName, []byte(confText), 0644)
  107. if err != nil {
  108. t.Fatalf("Failed to write config to file: %v", err)
  109. }
  110. migrate(confName)
  111. }