You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] object-master-detail-form issues getObjectSchema(undefined) for a detail collection whose object it never resolved, instead of declining to fetch #5940
Found while resolving #3840. Out of that card's scope (its subject was the sections sample and the probe's render guard); filing as observation-class for triage rather than queueing.
Fact (objectui origin/main @ 2074a59)
Mounting object-master-detail-form under the #3840 binding-reach fixture, with a data source that records every call, produces two calls:
The first is the parent binding and is correct — that is the call the binding-reach probe exists to observe. The second passes undefined as the object name.
Its origin is the details input ({ name: 'details', type: 'array', label: 'Detail Collections', required: true }). The fixture fills it with the generic array sample ['name'], so each detail entry is a bare string and whatever key the renderer reads the child object off (.object / .objectName) is undefined — and the renderer then asks the data layer for it anyway.
The two halves, and why I did not pick one
This has the same shape as the #3840 fork and deserves the same discriminating step, which I did not spend here:
Product half. Independently of the sample: a renderer that cannot resolve a detail collection's object should decline to fetch, not call getObjectSchema(undefined). A real backend gets a query for an object named undefined; the console gets whatever that returns. record:related_list is ledgered in that probe precisely for taking the other choice — it declines when it has no parent id.
The second half is worth a decision even if the first is true, which is why this is filed rather than folded into the fixture fix.
Note this call is invisible to the binding-reach probe's assertions either way: that probe asks whether any call carried the object name, and the first call already satisfies it. It surfaced only because the probe now records every call and the full list was read.
Related: #3840, #3838 (same family — an unresolved optional sub-key reaching a read unguarded).
Found while resolving #3840. Out of that card's scope (its subject was the
sectionssample and the probe's render guard); filing as observation-class for triage rather than queueing.Fact (objectui
origin/main@2074a59)Mounting
object-master-detail-formunder the #3840 binding-reach fixture, with a data source that records every call, produces two calls:The first is the parent binding and is correct — that is the call the binding-reach probe exists to observe. The second passes
undefinedas the object name.Its origin is the
detailsinput ({ name: 'details', type: 'array', label: 'Detail Collections', required: true }). The fixture fills it with the generic array sample['name'], so each detail entry is a bare string and whatever key the renderer reads the child object off (.object/.objectName) isundefined— and the renderer then asks the data layer for it anyway.The two halves, and why I did not pick one
This has the same shape as the #3840 fork and deserves the same discriminating step, which I did not spend here:
['name']is very likely not a plausible configuration fordetails— the same lesson [finding]object-form与object-master-detail-form在 binding-reach 探针的自动 fixture 下渲染成错误卡(reading 'map')—— 断言仍成立,但两个分支的崩溃守卫因此没法一起开 #3840 landed on forsections. If the spec's detail-collection entry is an object with a required child-object key, the sample is simply malformed and should be fixed in the probe's sample table.getObjectSchema(undefined). A real backend gets a query for an object namedundefined; the console gets whatever that returns.record:related_listis ledgered in that probe precisely for taking the other choice — it declines when it has no parent id.The second half is worth a decision even if the first is true, which is why this is filed rather than folded into the fixture fix.
Note this call is invisible to the binding-reach probe's assertions either way: that probe asks whether any call carried the object name, and the first call already satisfies it. It surfaced only because the probe now records every call and the full list was read.
Related: #3840, #3838 (same family — an unresolved optional sub-key reaching a read unguarded).