diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-14 20:42:34 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-16 02:44:52 +0000 |
| commit | 879e67a95cf994376cbb7e5724a7599c1711b1ec (patch) | |
| tree | ade8c4d65674d486914c2865f2af733c499ae163 /internal/handlers/widget_test.go | |
| parent | 146034b08446c4bf0099bb41ab5e689d418e6dce (diff) | |
fix(tasks): return ErrNativeTaskNotFound from UpdateNativeTask on stale id
HandleWidgetTaskUpdate now returns 404 instead of silently succeeding
when the widget's cached task id no longer exists, matching every
other native_tasks mutator's checkRowsAffected pattern.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
Diffstat (limited to 'internal/handlers/widget_test.go')
| -rw-r--r-- | internal/handlers/widget_test.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/handlers/widget_test.go b/internal/handlers/widget_test.go index 35c21e2..95f5264 100644 --- a/internal/handlers/widget_test.go +++ b/internal/handlers/widget_test.go @@ -924,6 +924,21 @@ func TestHandleWidgetTaskUpdate_UpdatesTitleAndDescription(t *testing.T) { } } +func TestHandleWidgetTaskUpdate_UnknownID_Returns404(t *testing.T) { + s, cleanup := setupTestDB(t) + defer cleanup() + h := &Handler{store: s} + + body := `{"id":"does-not-exist","title":"New title","description":""}` + req := httptest.NewRequest("POST", "/api/widget/task/update", strings.NewReader(body)) + w := httptest.NewRecorder() + http.HandlerFunc(h.HandleWidgetTaskUpdate).ServeHTTP(w, req) + + if w.Code != http.StatusNotFound { + t.Errorf("expected 404 for an unknown task id, got %d", w.Code) + } +} + func TestHandleWidgetTaskRecurrence_SetsPattern(t *testing.T) { s, cleanup := setupTestDB(t) defer cleanup() |
