MCPcopy Index your code
hub / github.com/coder/coder / TestRead

Function TestRead

coderd/httpapi/httpapi_test.go:78–130  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

76}
77
78func TestRead(t *testing.T) {
79 t.Parallel()
80 t.Run("EmptyStruct", func(t *testing.T) {
81 t.Parallel()
82 ctx := context.Background()
83 rw := httptest.NewRecorder()
84 r := httptest.NewRequest("POST", "/", bytes.NewBufferString("{}"))
85 v := struct{}{}
86 require.True(t, httpapi.Read(ctx, rw, r, &v))
87 })
88
89 t.Run("NoBody", func(t *testing.T) {
90 t.Parallel()
91 ctx := context.Background()
92 rw := httptest.NewRecorder()
93 r := httptest.NewRequest("POST", "/", nil)
94 var v json.RawMessage
95 require.False(t, httpapi.Read(ctx, rw, r, v))
96 })
97
98 t.Run("Validate", func(t *testing.T) {
99 t.Parallel()
100 type toValidate struct {
101 Value string `json:"value" validate:"required"`
102 }
103 ctx := context.Background()
104 rw := httptest.NewRecorder()
105 r := httptest.NewRequest("POST", "/", bytes.NewBufferString(`{"value":"hi"}`))
106
107 var validate toValidate
108 require.True(t, httpapi.Read(ctx, rw, r, &validate))
109 require.Equal(t, "hi", validate.Value)
110 })
111
112 t.Run("ValidateFailure", func(t *testing.T) {
113 t.Parallel()
114 type toValidate struct {
115 Value string `json:"value" validate:"required"`
116 }
117 ctx := context.Background()
118 rw := httptest.NewRecorder()
119 r := httptest.NewRequest("POST", "/", bytes.NewBufferString("{}"))
120
121 var validate toValidate
122 require.False(t, httpapi.Read(ctx, rw, r, &validate))
123 var v codersdk.Response
124 err := json.NewDecoder(rw.Body).Decode(&v)
125 require.NoError(t, err)
126 require.Len(t, v.Validations, 1)
127 require.Equal(t, "value", v.Validations[0].Field)
128 require.Equal(t, "Validation failed for tag \"required\" with value: \"\"", v.Validations[0].Detail)
129 })
130}
131
132func TestWebsocketCloseMsg(t *testing.T) {
133 t.Parallel()

Callers

nothing calls this directly

Calls 4

ReadFunction · 0.92
RunMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected