(t *testing.T)
| 77 | } |
| 78 | |
| 79 | func TestGenerateSwaggerDoc(t *testing.T) { |
| 80 | workDir := panelWorkDir(t) |
| 81 | swagBin := swagBin(t) |
| 82 | |
| 83 | cmd1 := exec.Command(swagBin, "init", "-o", filepath.Join(workDir, "core/cmd/server/docs/docs_agent"), "-d", filepath.Join(workDir, "agent"), "-g", "../agent/cmd/server/main.go") |
| 84 | cmd1.Dir = workDir |
| 85 | std1, err := cmd1.CombinedOutput() |
| 86 | if err != nil { |
| 87 | fmt.Printf("generate swagger doc of agent failed, std1: %v, err: %v", string(std1), err) |
| 88 | return |
| 89 | } |
| 90 | cmd2 := exec.Command(swagBin, "init", "-o", filepath.Join(workDir, "core/cmd/server/docs/docs_core"), "-d", filepath.Join(workDir, "core"), "-g", "./cmd/server/main.go") |
| 91 | cmd2.Dir = workDir |
| 92 | std2, err := cmd2.CombinedOutput() |
| 93 | if err != nil { |
| 94 | fmt.Printf("generate swagger doc of core failed, std2: %v, err: %v", string(std2), err) |
| 95 | return |
| 96 | } |
| 97 | |
| 98 | agentJson := filepath.Join(workDir, "core/cmd/server/docs/docs_agent/swagger.json") |
| 99 | agentFile, err := os.ReadFile(agentJson) |
| 100 | if err != nil { |
| 101 | fmt.Printf("read file docs_agent failed, err: %v", err) |
| 102 | return |
| 103 | } |
| 104 | var agentSwagger Swagger |
| 105 | if err := json.Unmarshal(agentFile, &agentSwagger); err != nil { |
| 106 | fmt.Printf("agent json unmarshal failed, err: %v", err) |
| 107 | return |
| 108 | } |
| 109 | |
| 110 | coreJson := filepath.Join(workDir, "core/cmd/server/docs/docs_core/swagger.json") |
| 111 | coreFile, err := os.ReadFile(coreJson) |
| 112 | if err != nil { |
| 113 | fmt.Printf("read file docs_core failed, err: %v", err) |
| 114 | return |
| 115 | } |
| 116 | var coreSwagger Swagger |
| 117 | if err := json.Unmarshal(coreFile, &coreSwagger); err != nil { |
| 118 | fmt.Printf("core json unmarshal failed, err: %v", err) |
| 119 | return |
| 120 | } |
| 121 | |
| 122 | newSwagger := Swagger{ |
| 123 | Swagger: agentSwagger.Swagger, |
| 124 | Info: agentSwagger.Info, |
| 125 | Host: agentSwagger.Host, |
| 126 | BasePath: agentSwagger.BasePath, |
| 127 | Paths: agentSwagger.Paths, |
| 128 | Definitions: agentSwagger.Definitions, |
| 129 | } |
| 130 | |
| 131 | for key, val := range coreSwagger.Paths { |
| 132 | if _, ok := newSwagger.Paths[key]; !ok { |
| 133 | newSwagger.Paths[key] = val |
| 134 | } |
| 135 | } |
| 136 | for key, val := range coreSwagger.Definitions { |
nothing calls this directly
no test coverage detected