package controller
import (
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
"github.com/goodrain/rainbond/builder/parser/code"
httputil "github.com/goodrain/rainbond/util/http"
)
func TestListCNBFrameworksDefaultsToNodejs(t *testing.T) {
req := httptest.NewRequest(http.MethodGet, "/clusters/cnb/frameworks", nil)
recorder := httptest.NewRecorder()
(&ClusterController{}).ListCNBFrameworks(recorder, req)
if recorder.Code != http.StatusOK {
t.Fatalf("expected status %d, got %d", http.StatusOK, recorder.Code)
}
var body httputil.ResponseBody
if err := json.Unmarshal(recorder.Body.Bytes(), &body); err != nil {
t.Fatalf("unmarshal response body: %v", err)
}
list, ok := body.List.([]interface{})
if !ok {
t.Fatalf("expected list response, got %#v", body.List)
}
expected := code.GetSupportedFrameworks("nodejs")
if len(list) != len(expected) {
t.Fatalf("expected %d frameworks, got %d", len(expected), len(list))
}
}