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.
 
 
 
 
 
 

64 lines
2.3 KiB

package handlers
import (
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"strings"
"testing"
"teraclone/internal/service"
)
func TestSystemImprovementPagesAndRemovedNavigation(t *testing.T) {
handler, err := NewDeviceHandler(service.NewStatelessAppService(), "http://127.0.0.1:1")
if err != nil {
t.Fatal(err)
}
mux := http.NewServeMux()
handler.RegisterRoutes(mux)
handler.sessions["qa-admin"] = browserSession{Username: "admin", BackendToken: "test-token", Role: "administrator", WorkspaceID: "local-ui-qa"}
for _, path := range []string{"/", "/port-status", "/ports/1/parameters", "/ports/26/parameters", "/ports/20/parameters", "/ports/20/operation-1", "/ports/20/operation-2", "/ports/20/data-log", "/port-debug", "/tools/nettest/ping", "/logs/ports", "/device/factory-reset"} {
req := httptest.NewRequest(http.MethodGet, path, nil)
req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "qa-admin"})
response := httptest.NewRecorder()
mux.ServeHTTP(response, req)
if response.Code != 200 {
t.Fatalf("%s: %d", path, response.Code)
}
html := response.Body.String()
for _, removed := range []string{`href="/tools/alias"`, `href="/password"`, `href="/ports/20/advanced"`} {
if strings.Contains(html, removed) {
t.Errorf("%s still contains %s", path, removed)
}
}
if path == "/port-status" && (!strings.Contains(html, "세션 4 IP") || !strings.Contains(html, "포트 별칭")) {
t.Fatal("port alias/session controls missing")
}
if strings.Contains(path, "operation-") && !strings.Contains(html, `value="10020"`) {
t.Fatal("channel listen port is not fixed")
}
if directory := os.Getenv("TERA_UI_QA_OUTPUT"); directory != "" {
if err := os.MkdirAll(directory, 0755); err != nil {
t.Fatal(err)
}
name := strings.ReplaceAll(strings.Trim(path, "/"), "/", "-")
if name == "" {
name = "dashboard"
}
if err := os.WriteFile(filepath.Join(directory, name+".html"), response.Body.Bytes(), 0644); err != nil {
t.Fatal(err)
}
}
}
for _, path := range []string{"/ports/20/advanced", "/tools/alias"} {
req := httptest.NewRequest(http.MethodGet, path, nil)
req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "qa-admin"})
response := httptest.NewRecorder()
mux.ServeHTTP(response, req)
if response.Code != 404 {
t.Fatalf("removed page %s returned %d", path, response.Code)
}
}
}