From 09c415542e5c5b0784e1a11bf67618488a81a7af Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Wed, 9 Oct 2024 16:57:07 -0700 Subject: [PATCH] bug: allow space in metadata name --- pkg/parser/parser.go | 2 +- pkg/parser/parser_test.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index e6113d86..c0beb8f2 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -18,7 +18,7 @@ var ( sepRegex = regexp.MustCompile(`^\s*---+\s*$`) endHeaderRegex = regexp.MustCompile(`^\s*===+\s*$`) strictSepRegex = regexp.MustCompile(`^---\n$`) - skipRegex = regexp.MustCompile(`^![-.:*\w]+\s*$`) + skipRegex = regexp.MustCompile(`^![ -.:*\w]+\s*$`) nameRegex = regexp.MustCompile(`^[a-z]+$`) ) diff --git a/pkg/parser/parser_test.go b/pkg/parser/parser_test.go index 6eab45c9..7e1282ca 100644 --- a/pkg/parser/parser_test.go +++ b/pkg/parser/parser_test.go @@ -242,6 +242,23 @@ share output filters: shared }}).Equal(t, out) } +func TestParseMetaDataSpace(t *testing.T) { + input := ` +name: a space +body +--- +!metadata:a space:other +foo bar +` + tools, err := ParseTools(strings.NewReader(input)) + require.NoError(t, err) + + assert.Len(t, tools, 1) + autogold.Expect(map[string]string{ + "other": "foo bar", + }).Equal(t, tools[0].MetaData) +} + func TestParseMetaData(t *testing.T) { input := ` name: first