test(editor): record that the field-value resolver has no exemption list

Confirmed decision: every editor host supplies a resolver, including the ones
with no stream context.

Complying costs nothing. The composable's resolveFieldValues already returns []
when streamName is unset — one of its five specs — so a surface without stream
context supplies it and gets an empty list rather than being special-cased. The
two pass-throughs (QueryEditor.vue, SloExpressionField.vue) forward the prop
exactly as they already forward keywords and suggestions.

The reasoning now sits in the guard so it is not undone later: an exemption
list is where the next silent gap hides. Every wiring bug in this workstream —
Alerts on the base list, the SLO form never loading the catalog, Traces missing
:suggestions — reached production because one surface was quietly different
from the rest, and each was reported from the running app rather than caught by
a test.

Still 13 red, one per host, each naming its file.
This commit is contained in:
Prabhat Sharma 2026-08-02 15:18:40 -07:00
parent 562ad79195
commit 24ae26676d
1 changed files with 9 additions and 0 deletions

View File

@ -73,6 +73,15 @@ describe("editor wiring — every surface supplies both completion sources", ()
// await a resolver something hands it. A surface that omits this gets a
// working editor with no value completion — silently, exactly like the
// three prop-wiring gaps before it.
//
// DECIDED: applies to EVERY host, with no exemption list. A surface with no
// stream context supplies a resolver returning [] — which the composable's
// resolveFieldValues already does when streamName is unset, so complying
// costs nothing. Pass-throughs (QueryEditor.vue, SloExpressionField.vue)
// forward the prop as they already forward keywords and suggestions.
// An exemption list is where the next silent gap would hide: every wiring
// bug in this workstream reached production because one surface was quietly
// different from the rest.
expect(
/:field-value-resolver\s*=|:fieldValueResolver\s*=/.test(source),
`${path} mounts an editor without a field-value resolver`,