MCPcopy
hub / github.com/danielgtaylor/huma / TestIfUnmodifiedSince

Function TestIfUnmodifiedSince

conditional/params_test.go:143–178  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

141}
142
143func TestIfUnmodifiedSince(t *testing.T) {
144 p := Params{}
145
146 now, err := time.Parse(time.RFC3339, "2021-01-01T12:00:00Z")
147 require.NoError(t, err)
148
149 before, err := time.Parse(time.RFC3339, "2020-01-01T12:00:00Z")
150 require.NoError(t, err)
151
152 after, err := time.Parse(time.RFC3339, "2022-01-01T12:00:00Z")
153 require.NoError(t, err)
154
155 // Read request
156 r, _ := http.NewRequest(http.MethodGet, "https://example.com/resource", nil)
157 w := httptest.NewRecorder()
158 ctx := humatest.NewContext(nil, r, w)
159
160 p.IfUnmodifiedSince = now
161
162 p.Resolve(ctx)
163 require.NoError(t, p.PreconditionFailed("", before))
164 require.NoError(t, p.PreconditionFailed("", now))
165 require.Error(t, p.PreconditionFailed("", after))
166
167 // Write request
168 r, _ = http.NewRequest(http.MethodPut, "https://example.com/resource", nil)
169 w = httptest.NewRecorder()
170 ctx = humatest.NewContext(nil, r, w)
171
172 p.IfUnmodifiedSince = now
173
174 p.Resolve(ctx)
175 perr := p.PreconditionFailed("", after)
176 require.Error(t, perr)
177 assert.Equal(t, http.StatusPreconditionFailed, perr.GetStatus())
178}

Callers

nothing calls this directly

Calls 5

ResolveMethod · 0.95
PreconditionFailedMethod · 0.95
NewContextFunction · 0.92
ErrorMethod · 0.65
GetStatusMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…