package task

import (
	"net/http"
	"net/http/httptest"
	"strings"
	"testing"

	"github.com/gin-gonic/gin"
	"github.com/stretchr/testify/require"
)

func TestBoardViewStateHandlerSetRejectsInvalidBody(t *testing.T) {
	t.Parallel()

	recorder := httptest.NewRecorder()
	ctx, _ := gin.CreateTestContext(recorder)
	ctx.Request = httptest.NewRequest(http.MethodPut, "/api/v1/workspaces/wsp_1/tasks/channel/ch_1/view-state", strings.NewReader("{"))
	ctx.Request.Header.Set("Content-Type", "application/json")
	ctx.Params = gin.Params{{Key: "channelId", Value: "ch_1"}}
	setTaskAuth(ctx)

	serveTaskWorkspaceJSON(ctx, newRouteHandlers(Dependencies{}).boardView.Set)

	require.Equal(t, http.StatusBadRequest, recorder.Code)
	require.Equal(t, "Invalid request body", jsonError(t, recorder))
}
