MCPcopy Index your code
hub / github.com/1Panel-dev/1Panel / TestGenerateSwaggerDoc

Function TestGenerateSwaggerDoc

core/cmd/server/docs/swagger_test.go:79–159  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

77}
78
79func 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 {

Callers

nothing calls this directly

Calls 5

panelWorkDirFunction · 0.85
swagBinFunction · 0.85
loadDefaultDocsFunction · 0.85
WriteFileMethod · 0.80
RemoveAllMethod · 0.80

Tested by

no test coverage detected