From 97355c902b84dd4531c397cd94b727b71c9528a1 Mon Sep 17 00:00:00 2001 From: terminalchai Date: Wed, 18 Mar 2026 02:47:47 +0530 Subject: [PATCH 1/2] fix: reset TOML decoder between files --- pkg/yqlib/all_at_once_evaluator_test.go | 22 ++++++++++++++++++++++ pkg/yqlib/decoder_toml.go | 1 + 2 files changed, 23 insertions(+) diff --git a/pkg/yqlib/all_at_once_evaluator_test.go b/pkg/yqlib/all_at_once_evaluator_test.go index 3567655d..64f0ce2f 100644 --- a/pkg/yqlib/all_at_once_evaluator_test.go +++ b/pkg/yqlib/all_at_once_evaluator_test.go @@ -54,3 +54,25 @@ func TestAllAtOnceEvaluateNodes(t *testing.T) { test.AssertResultComplex(t, tt.expected, resultsToString(t, list)) } } + +func TestTomlDecoderCanBeReinitializedAcrossDocuments(t *testing.T) { + decoder := NewTomlDecoder() + + firstDocuments, err := ReadDocuments(strings.NewReader("id = \"Foobar\"\n"), decoder) + if err != nil { + t.Fatalf("failed to read first TOML document: %v", err) + } + if firstDocuments.Len() != 1 { + t.Fatalf("expected first document count to be 1, got %d", firstDocuments.Len()) + } + test.AssertResult(t, "Foobar", firstDocuments.Front().Value.(*CandidateNode).Content[1].Value) + + secondDocuments, err := ReadDocuments(strings.NewReader("id = \"Barbar\"\n"), decoder) + if err != nil { + t.Fatalf("failed to read second TOML document: %v", err) + } + if secondDocuments.Len() != 1 { + t.Fatalf("expected second document count to be 1, got %d", secondDocuments.Len()) + } + test.AssertResult(t, "Barbar", secondDocuments.Front().Value.(*CandidateNode).Content[1].Value) +} diff --git a/pkg/yqlib/decoder_toml.go b/pkg/yqlib/decoder_toml.go index dd568bea..dac720bb 100644 --- a/pkg/yqlib/decoder_toml.go +++ b/pkg/yqlib/decoder_toml.go @@ -44,6 +44,7 @@ func (dec *tomlDecoder) Init(reader io.Reader) error { } dec.pendingComments = make([]string, 0) dec.firstContentSeen = false + dec.finished = false return nil } From 9b321bb5be6bb984cc93af33a826132f5497ba82 Mon Sep 17 00:00:00 2001 From: terminalchai Date: Sun, 22 Mar 2026 03:23:27 +0530 Subject: [PATCH 2/2] test: fix TOML regression fixture spelling --- pkg/yqlib/all_at_once_evaluator_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/yqlib/all_at_once_evaluator_test.go b/pkg/yqlib/all_at_once_evaluator_test.go index 64f0ce2f..ce83db88 100644 --- a/pkg/yqlib/all_at_once_evaluator_test.go +++ b/pkg/yqlib/all_at_once_evaluator_test.go @@ -67,12 +67,12 @@ func TestTomlDecoderCanBeReinitializedAcrossDocuments(t *testing.T) { } test.AssertResult(t, "Foobar", firstDocuments.Front().Value.(*CandidateNode).Content[1].Value) - secondDocuments, err := ReadDocuments(strings.NewReader("id = \"Barbar\"\n"), decoder) + secondDocuments, err := ReadDocuments(strings.NewReader("id = \"Banana\"\n"), decoder) if err != nil { t.Fatalf("failed to read second TOML document: %v", err) } if secondDocuments.Len() != 1 { t.Fatalf("expected second document count to be 1, got %d", secondDocuments.Len()) } - test.AssertResult(t, "Barbar", secondDocuments.Front().Value.(*CandidateNode).Content[1].Value) + test.AssertResult(t, "Banana", secondDocuments.Front().Value.(*CandidateNode).Content[1].Value) }