fix(12.2): close code-review blockers on uploads, JSON caps, and pivot fill
Keep form save behind in-flight uploads, make retries idempotent via X-Upload-Id, cap remaining JSON bodies, and surface pending pivot type errors instead of zeroing them. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -362,15 +362,19 @@ func TestDeferredStore(t *testing.T) {
|
||||
if err := DeferredBind(ctx, tx, key, "members", "acme_members", "2", &DeferredEnvelope{Pivot: map[string]any{"note": "hi"}}); err != nil {
|
||||
return err
|
||||
}
|
||||
// An empty envelope stores no pivot_data.
|
||||
return DeferredBind(ctx, tx, key, "members", "acme_members", "3", &DeferredEnvelope{})
|
||||
// An empty envelope stores no pivot_data; upload_id alone is stored.
|
||||
if err := DeferredBind(ctx, tx, key, "members", "acme_members", "3", &DeferredEnvelope{}); err != nil {
|
||||
return err
|
||||
}
|
||||
return DeferredBind(ctx, tx, key, "photos", "system_files", "4", &DeferredEnvelope{UploadID: "retry-one"})
|
||||
})
|
||||
rows := bindingRows(t, gdb)
|
||||
if len(rows) != 3 || rows[0].PivotData == nil || *rows[0].PivotData != `{"created":true}` ||
|
||||
rows[1].PivotData == nil || *rows[1].PivotData != `{"pivot":{"note":"hi"}}` || rows[2].PivotData != nil {
|
||||
if len(rows) != 4 || rows[0].PivotData == nil || *rows[0].PivotData != `{"created":true}` ||
|
||||
rows[1].PivotData == nil || *rows[1].PivotData != `{"pivot":{"note":"hi"}}` || rows[2].PivotData != nil ||
|
||||
rows[3].PivotData == nil || *rows[3].PivotData != `{"upload_id":"retry-one"}` {
|
||||
t.Fatalf("pivot_data %+v", rows)
|
||||
}
|
||||
for i, want := range []DeferredEnvelope{{Created: true}, {Pivot: map[string]any{"note": "hi"}}, {}} {
|
||||
for i, want := range []DeferredEnvelope{{Created: true}, {Pivot: map[string]any{"note": "hi"}}, {}, {UploadID: "retry-one"}} {
|
||||
env, err := rows[i].Envelope()
|
||||
if err != nil || fmt.Sprint(env) != fmt.Sprint(want) {
|
||||
t.Fatalf("envelope %d = %+v %v", i, env, err)
|
||||
|
||||
Reference in New Issue
Block a user