mirror of
https://gitcode.com/JianFeeeee/webui4frpc.git
synced 2026-09-20 08:57:55 +00:00
fix: 注册 PUT /api/manager/settings 使设置保存生效
server.go NewServeMux 按方法分发到 handleSettingsPut(原仅注册 GET,PUT 静默返回旧值) 新增 TestSettingsPutRoundTrip 回归测试;gofmt 清理历史格式问题
This commit is contained in:
@ -97,3 +97,44 @@ func TestCanvasRoundTrip(t *testing.T) {
|
||||
t.Fatalf("remotes after reload = %+v", got2.Remotes)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSettingsPutRoundTrip(t *testing.T) {
|
||||
_, ts := newTestHandler(t)
|
||||
client := ts.Client()
|
||||
|
||||
// PUT updated settings
|
||||
body := `{"autoStartProfiles":false,"restartOnExit":false,"restartIntervalSeconds":12}`
|
||||
req, _ := http.NewRequest(http.MethodPut, ts.URL+"/api/manager/settings", bytes.NewBufferString(body))
|
||||
req.SetBasicAuth("admin", "pw")
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
t.Fatalf("PUT settings status = %d, want 200", resp.StatusCode)
|
||||
}
|
||||
|
||||
// Confirm response body reflects saved values
|
||||
var saved store.Settings
|
||||
if err := json.NewDecoder(resp.Body).Decode(&saved); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if saved.AutoStartProfiles || saved.RestartOnExit || saved.RestartIntervalSeconds != 12 {
|
||||
t.Fatalf("saved settings = %+v", saved)
|
||||
}
|
||||
|
||||
// GET again to confirm persistence
|
||||
req2, _ := http.NewRequest(http.MethodGet, ts.URL+"/api/manager/settings", nil)
|
||||
req2.SetBasicAuth("admin", "pw")
|
||||
resp2, err2 := client.Do(req2)
|
||||
if err2 != nil {
|
||||
t.Fatal(err2)
|
||||
}
|
||||
defer resp2.Body.Close()
|
||||
var got store.Settings
|
||||
_ = json.NewDecoder(resp2.Body).Decode(&got)
|
||||
if got.AutoStartProfiles || got.RestartOnExit || got.RestartIntervalSeconds != 12 {
|
||||
t.Fatalf("settings after reload = %+v", got)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user