Ei kuvausta
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

my_config_svc_test.go 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package main
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "io"
  6. "net/http"
  7. "os/exec"
  8. "testing"
  9. "git.x2erp.com/qdy/go-base/model/request/configreq"
  10. )
  11. func TestCreateConfigStartupSVC(t *testing.T) {
  12. // 清除测试缓存
  13. cmd := exec.Command("go", "clean", "-testcache")
  14. if err := cmd.Run(); err != nil {
  15. t.Logf("清除测试缓存失败: %v", err)
  16. // 继续执行测试
  17. }
  18. httpClient := &http.Client{}
  19. // 首先登录获取有效token
  20. loginURL := "http://localhost:8080/api/login/user"
  21. loginData := map[string]string{
  22. "user_id": "test-user-001",
  23. "password": "password123",
  24. }
  25. loginJSON, _ := json.Marshal(loginData)
  26. loginReq, err := http.NewRequest("POST", loginURL, bytes.NewReader(loginJSON))
  27. if err != nil {
  28. t.Fatalf("创建登录请求失败: %v", err)
  29. }
  30. loginReq.Header.Set("Content-Type", "application/json")
  31. loginResp, err := httpClient.Do(loginReq)
  32. if err != nil {
  33. t.Fatalf("发送登录请求失败: %v", err)
  34. }
  35. defer loginResp.Body.Close()
  36. loginBody, err := io.ReadAll(loginResp.Body)
  37. if err != nil {
  38. t.Fatalf("读取登录响应失败: %v", err)
  39. }
  40. var loginResult map[string]interface{}
  41. if err := json.Unmarshal(loginBody, &loginResult); err != nil {
  42. t.Fatalf("解析登录响应失败: %v", err)
  43. }
  44. if !loginResult["success"].(bool) {
  45. t.Fatalf("登录失败: %v", loginResult)
  46. }
  47. authToken := loginResult["data"].(string)
  48. t.Logf("获取到认证token: %s...", authToken[:50])
  49. // 使用获取的token调用API
  50. url := "http://localhost:8080/api/create/config/startup/svc-mcp"
  51. data := configreq.ConfigRequest{
  52. YamlRoot: "service",
  53. ConfigFields: map[string]*configreq.ConfigField{
  54. "secret_key": {
  55. YamlName: "secret_key",
  56. YamlValue: "123wad",
  57. },
  58. "write_timeout": {
  59. YamlName: "write_timeout",
  60. YamlValue: "90",
  61. },
  62. "read_timeout": {
  63. YamlName: "read_timeout",
  64. YamlValue: "80",
  65. },
  66. },
  67. }
  68. jsonData, err := json.Marshal(data)
  69. if err != nil {
  70. t.Fatalf("JSON序列化失败: %v", err)
  71. }
  72. req, err := http.NewRequest("POST", url, bytes.NewReader(jsonData))
  73. if err != nil {
  74. t.Fatalf("创建请求失败: %v", err)
  75. }
  76. req.Header.Set("Authorization", "Bearer "+authToken)
  77. req.Header.Set("Content-Type", "application/json")
  78. resp, err := httpClient.Do(req)
  79. if err != nil {
  80. t.Fatalf("发送请求失败: %v", err)
  81. }
  82. defer resp.Body.Close()
  83. // 读取响应
  84. body, err := io.ReadAll(resp.Body)
  85. if err != nil {
  86. t.Fatalf("读取响应失败: %v", err)
  87. }
  88. var result map[string]interface{}
  89. if err := json.Unmarshal(body, &result); err != nil {
  90. t.Fatalf("解析响应失败: %v", err)
  91. }
  92. t.Logf("状态码: %d", resp.StatusCode)
  93. t.Logf("响应体: %s", string(body))
  94. if resp.StatusCode != 200 {
  95. t.Errorf("期望状态码200,实际: %d", resp.StatusCode)
  96. }
  97. if !result["success"].(bool) {
  98. t.Errorf("创建SVC启动配置失败: %v", result)
  99. }
  100. }
  101. func TestDelConfigStartupSVC(t *testing.T) {
  102. httpClient := &http.Client{}
  103. url := "http://localhost:8080/api/delete/config/startup/svc-mcp"
  104. data := configreq.ConfigRequest{
  105. YamlRoot: "service",
  106. ConfigFields: map[string]*configreq.ConfigField{
  107. "secret_key": {
  108. YamlName: "secret_key",
  109. },
  110. "write_timeout": {
  111. YamlName: "write_timeout",
  112. },
  113. },
  114. }
  115. jsonData, err := json.Marshal(data)
  116. if err != nil {
  117. t.Fatalf("JSON序列化失败: %v", err)
  118. }
  119. req, err := http.NewRequest("POST", url, bytes.NewReader(jsonData))
  120. if err != nil {
  121. t.Fatalf("创建请求失败: %v", err)
  122. }
  123. // Basic Auth 认证
  124. req.SetBasicAuth("admin", "123")
  125. req.Header.Set("Content-Type", "application/json")
  126. resp, err := httpClient.Do(req)
  127. if err != nil {
  128. t.Fatalf("发送请求失败: %v", err)
  129. }
  130. defer resp.Body.Close()
  131. // 读取响应
  132. body, err := io.ReadAll(resp.Body)
  133. if err != nil {
  134. t.Fatalf("读取响应失败: %v", err)
  135. }
  136. var result map[string]interface{}
  137. if err := json.Unmarshal(body, &result); err != nil {
  138. t.Fatalf("解析响应失败: %v", err)
  139. }
  140. t.Logf("状态码: %d", resp.StatusCode)
  141. t.Logf("响应体: %s", string(body))
  142. if resp.StatusCode != 200 {
  143. t.Errorf("期望状态码200,实际: %d", resp.StatusCode)
  144. }
  145. if !result["success"].(bool) {
  146. t.Errorf("删除SVC启动配置失败: %v", result)
  147. }
  148. }