From 266f68a3912fddd694ba6f2521f7c61247f49463 Mon Sep 17 00:00:00 2001 From: Henrique Arroyo <53832470+arroyoh@users.noreply.github.com> Date: Fri, 11 Aug 2023 19:36:40 -0300 Subject: [PATCH] Fix: pass through scanner errors when no line is read (#24) --- gotenv.go | 2 +- gotenv_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gotenv.go b/gotenv.go index 8e7c281..eddad3a 100644 --- a/gotenv.go +++ b/gotenv.go @@ -267,7 +267,7 @@ func strictParse(r io.Reader, override bool) (Env, error) { } } - return env, nil + return env, scanner.Err() } var ( diff --git a/gotenv_test.go b/gotenv_test.go index dc8b3b9..b566b38 100644 --- a/gotenv_test.go +++ b/gotenv_test.go @@ -255,6 +255,19 @@ func TestStrictParse_PassThroughErrors(t *testing.T) { assert.Error(t, err) } +type infiniteReader struct { + io.Reader +} + +func (er infiniteReader) Read(p []byte) (n int, err error) { + return len(p), nil +} + +func TestStrictParse_NoTokenPassThroughErrors(t *testing.T) { + _, err := gotenv.StrictParse(&infiniteReader{}) + assert.Error(t, err) +} + func TestRead(t *testing.T) { for _, tt := range fixtures { env, err := gotenv.Read(tt.filename)