mirror of https://github.com/databricks/cli.git
Compare commits
2 Commits
414c9fba1f
...
279c19ebc0
Author | SHA1 | Date |
---|---|---|
|
279c19ebc0 | |
|
5a9847b03d |
|
@ -33,12 +33,7 @@ func createGlobError(v dyn.Value, p dyn.Path, message string) diag.Diagnostic {
|
||||||
Severity: diag.Error,
|
Severity: diag.Error,
|
||||||
Summary: fmt.Sprintf("%s: %s", source, message),
|
Summary: fmt.Sprintf("%s: %s", source, message),
|
||||||
Locations: []dyn.Location{v.Location()},
|
Locations: []dyn.Location{v.Location()},
|
||||||
|
Paths: []dyn.Path{p},
|
||||||
Paths: []dyn.Path{
|
|
||||||
// Hack to clone the path. This path copy is mutable.
|
|
||||||
// To be addressed in a later PR.
|
|
||||||
p.Append(),
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,10 @@ type expand struct {
|
||||||
|
|
||||||
func matchError(p dyn.Path, l []dyn.Location, message string) diag.Diagnostic {
|
func matchError(p dyn.Path, l []dyn.Location, message string) diag.Diagnostic {
|
||||||
return diag.Diagnostic{
|
return diag.Diagnostic{
|
||||||
Severity: diag.Error,
|
Severity: diag.Error,
|
||||||
Summary: message,
|
Summary: message,
|
||||||
Paths: []dyn.Path{
|
|
||||||
p.Append(),
|
|
||||||
},
|
|
||||||
Locations: l,
|
Locations: l,
|
||||||
|
Paths: []dyn.Path{p},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ func collectLocalLibraries(b *bundle.Bundle) (map[string][]configLocation, error
|
||||||
|
|
||||||
source = filepath.Join(b.RootPath, source)
|
source = filepath.Join(b.RootPath, source)
|
||||||
libs[source] = append(libs[source], configLocation{
|
libs[source] = append(libs[source], configLocation{
|
||||||
configPath: p.Append(), // Hack to get the copy of path
|
configPath: p,
|
||||||
location: v.Location(),
|
location: v.Location(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,27 @@
|
||||||
package dyn
|
package dyn_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/databricks/cli/libs/dyn"
|
||||||
|
assert "github.com/databricks/cli/libs/dyn/dynassert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestVisitCallbackPathCopy(t *testing.T) {
|
func TestVisitCallbackPathCopy(t *testing.T) {
|
||||||
vin := V(map[string]Value{
|
vin := dyn.V(map[string]dyn.Value{
|
||||||
"foo": V(42),
|
"foo": dyn.V(42),
|
||||||
"bar": V(43),
|
"bar": dyn.V(43),
|
||||||
})
|
})
|
||||||
|
|
||||||
var paths []Path
|
var paths []dyn.Path
|
||||||
|
|
||||||
// The callback should receive a copy of the path.
|
// The callback should receive a copy of the path.
|
||||||
// If the same underlying value is used, all collected paths will be the same.
|
// If the same underlying value is used, all collected paths will be the same.
|
||||||
_, _ = visit(vin, EmptyPath, NewPattern(AnyKey()), visitOptions{
|
// This test uses `MapByPattern` to collect all paths in the map.
|
||||||
fn: func(p Path, v Value) (Value, error) {
|
// Visit itself doesn't have public functions and we exclusively use black-box testing for this package.
|
||||||
paths = append(paths, p)
|
_, _ = dyn.MapByPattern(vin, dyn.NewPattern(dyn.AnyKey()), func(p dyn.Path, v dyn.Value) (dyn.Value, error) {
|
||||||
return v, nil
|
paths = append(paths, p)
|
||||||
},
|
return v, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
// Verify that the paths retained their original values.
|
// Verify that the paths retained their original values.
|
||||||
|
|
Loading…
Reference in New Issue