package handler import ( "fmt" "net/http" "net/http/httptest" "sort" "testing" ) func TestCreateWorkspace_RejectsReservedSlug(t *testing.T) { // Drive the test off the actual reservedSlugs map so the test can never // drift from the source of truth. New entries are covered automatically. reserved := make([]string, 0, len(reservedSlugs)) for slug := range reservedSlugs { reserved = append(reserved, slug) } sort.Strings(reserved) // deterministic test order for _, slug := range reserved { t.Run(slug, func(t *testing.T) { w := httptest.NewRecorder() req := newRequest("POST", "/api/workspaces", map[string]any{ "name": fmt.Sprintf("Test %s", slug), "slug": slug, }) testHandler.CreateWorkspace(w, req) if w.Code != http.StatusBadRequest { t.Fatalf("slug %q: expected 400, got %d: %s", slug, w.Code, w.Body.String()) } }) } }