From 86a96a80a292831db17957f726ce39347c22703b Mon Sep 17 00:00:00 2001 From: Scott Motte Date: Wed, 2 Feb 2022 11:47:18 -0800 Subject: [PATCH] Add test for empty single or double quotes value --- lib/main.js | 2 +- tests/.env | 2 ++ tests/test-parse.js | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index 27f4620f..34facb25 100644 --- a/lib/main.js +++ b/lib/main.js @@ -28,7 +28,7 @@ function parse (src) { const maybeQuote = value[0] // Remove surrounding quotes - value = value.replace(/^(['"])([\s\S]+)\1$/mg, '$2') + value = value.replace(/^(['"])([\s\S]*)\1$/mg, '$2') // Expand newlines if double quoted if (maybeQuote === '"') { diff --git a/tests/.env b/tests/.env index fe0d87e9..241c88fd 100644 --- a/tests/.env +++ b/tests/.env @@ -3,6 +3,8 @@ BASIC=basic # previous line intentionally left blank AFTER_LINE=after_line EMPTY= +EMPTY_SINGLE_QUOTES='' +EMPTY_DOUBLE_QUOTES="" SINGLE_QUOTES='single_quotes' SINGLE_QUOTES_SPACED=' single quotes ' DOUBLE_QUOTES="double_quotes" diff --git a/tests/test-parse.js b/tests/test-parse.js index f5614ed6..7526ecfa 100644 --- a/tests/test-parse.js +++ b/tests/test-parse.js @@ -13,6 +13,10 @@ t.equal(parsed.AFTER_LINE, 'after_line', 'reads after a skipped line') t.equal(parsed.EMPTY, '', 'defaults empty values to empty string') +t.equal(parsed.EMPTY_SINGLE_QUOTES, '', 'defaults empty values to empty string') + +t.equal(parsed.EMPTY_DOUBLE_QUOTES, '', 'defaults empty values to empty string') + t.equal(parsed.SINGLE_QUOTES, 'single_quotes', 'escapes single quoted values') t.equal(parsed.SINGLE_QUOTES_SPACED, ' single quotes ', 'respects surrounding spaces in single quotes')