From 497d2ee0314b888451a75f255f91be879f6990df Mon Sep 17 00:00:00 2001 From: Anna Song Date: Fri, 25 Mar 2022 17:41:18 -0400 Subject: [PATCH] Added test for bug 4487: cannot parse keys with dots --- kyaml/yaml/rnode_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/kyaml/yaml/rnode_test.go b/kyaml/yaml/rnode_test.go index 0c154df15f..d308efed20 100644 --- a/kyaml/yaml/rnode_test.go +++ b/kyaml/yaml/rnode_test.go @@ -2310,3 +2310,31 @@ func TestGetAnnotations(t *testing.T) { t.Fatalf("expected '%s', got '%s'", expected, actual) } } + +func TestGetFieldValueWithDot(t *testing.T) { + t.Skip() + + const input = ` +kind: Pod +metadata: + name: hello-world + labels: + app: hello-world-app + foo.appname: hello-world-foo +` + data, err := Parse(input) + require.NoError(t, err) + + labelRNode, err := data.Pipe(Lookup("metadata", "labels")) + require.NoError(t, err) + + app, err := labelRNode.GetFieldValue("app") + require.NoError(t, err) + require.Equal(t, "hello-world-app", app) + + // TODO: doesn't currently work; we expect to be able to escape the dot in future + // https://github.com/kubernetes-sigs/kustomize/issues/4487 + fooAppName, err := labelRNode.GetFieldValue(`foo\.appname`) + require.NoError(t, err) + require.Equal(t, "hello-world-foo", fooAppName) // no field named 'foo.appname' +}