Want a selector on a repeating template refused as a selector, and the probe held to a descent ending on a linked table

This commit is contained in:
2026-09-28 00:35:52 +02:00
committed by Lillem4n
parent 1073232ca7
commit d95045f4ac
2 changed files with 9 additions and 6 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ func TestPathCheckStopsAtAMissingSegment(t *testing.T) {
t.Fatalf("pathLeaves(a.b) = %v, want the one leaf", leaves)
}
w := &pathCheck{tail: []string{"a", "nope", "deeper"}}
_, err := w.walk(n, w.tail)
_, err := w.run(n)
if err == nil || !strings.Contains(err.Error(), `no field "nope"`) {
t.Errorf("walk(a.nope.deeper) = %v, want the missing segment named", err)
}
+8 -5
View File
@@ -352,12 +352,13 @@ func TestTableSelectorInAReference(t *testing.T) {
}
}
for name, c := range map[string]struct{ json, want string }{
"unknown row": {`"{/region[99].name}"`, `"99"`},
"ambiguous name": {`"{/locality[Sandby].name}"`, "L7, L8"},
"not inside": {`"{/region[12].municipality[0180].name}"`, "not inside"},
"selector on template": {`"{/x[1].a}"`, "not a table"},
"unknown row": {`"{/region[99].name}"`, `"99"`},
"ambiguous name": {`"{/locality[Sandby].name}"`, "L7, L8"},
"not inside": {`"{/region[12].municipality[0180].name}"`, "not inside"},
"selector on template": {`"{/x[1].a}"`, "not a table"},
"selector on repeating template": {`"{/rep[1]}"`, "not a table"},
} {
_, err := New(WithoutShippedData(), WithDataPath(writeFiles(t, with(files, map[string]string{"bad.json": c.json}))))
_, err := New(WithoutShippedData(), WithDataPath(writeFiles(t, with(files, map[string]string{"bad.json": c.json, "rep.json": `{"format":"x","repeat":2}`}))))
if err == nil || !strings.Contains(err.Error(), c.want) {
t.Errorf("%s: New = %v, want an error mentioning %q", name, err, c.want)
}
@@ -1050,8 +1051,10 @@ func TestProbeReportsTheTablesADrawPins(t *testing.T) {
"municipality[1281].locality.name",
"municipality.locality[L4].name",
"region",
"region.municipality",
"region.municipality.name",
"region.locality.name",
"region[12].locality",
"region[12].locality.code",
"region[12].municipality.locality.code",
"region[12].name",