From 7e60eed1e9aebfaad1f890b05da8985348473266 Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 20:42:32 +0000 Subject: [PATCH 1/6] chore: add additional testcases to isMailtoURI Line 44 is only partially covered before this change --- test/validators.test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/validators.test.js b/test/validators.test.js index 6c68cd71a..e7e8c19dc 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -14500,6 +14500,9 @@ describe('Validators', () => { '', 'somthing', 'valid@gmail.com', + '?subject=one', + '?mailto:', + 'mailto:?mailto:?subject=one', 'mailto:?subject=okay&subject=444', 'mailto:?subject=something&wrong=888', 'mailto:somename@gmail.com', From a91d78b2100228d38061cfe46abf2782e0579eda Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 20:54:03 +0000 Subject: [PATCH 2/6] chore: add additonal const to figure out which part is partial --- src/lib/isMailtoURI.js | 3 ++- test/validators.test.js | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib/isMailtoURI.js b/src/lib/isMailtoURI.js index 0dd95b6a9..eb093db32 100644 --- a/src/lib/isMailtoURI.js +++ b/src/lib/isMailtoURI.js @@ -41,7 +41,8 @@ export default function isMailtoURI(url, options) { return false; } - const [to = '', queryString = ''] = url.replace('mailto:', '').split('?'); + const replacedUrl = url.replace('mailto:', ''); + const [to = '', queryString = ''] = replacedUrl.split('?'); if (!to && !queryString) { return true; diff --git a/test/validators.test.js b/test/validators.test.js index e7e8c19dc..6c68cd71a 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -14500,9 +14500,6 @@ describe('Validators', () => { '', 'somthing', 'valid@gmail.com', - '?subject=one', - '?mailto:', - 'mailto:?mailto:?subject=one', 'mailto:?subject=okay&subject=444', 'mailto:?subject=something&wrong=888', 'mailto:somename@gmail.com', From 64a67965178e0de15d02c3fee66b99d4e29f8532 Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 20:58:50 +0000 Subject: [PATCH 3/6] chore: add testcase for single ? --- test/validators.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/validators.test.js b/test/validators.test.js index 6c68cd71a..aa28b64c3 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -14498,6 +14498,7 @@ describe('Validators', () => { ], invalid: [ '', + '?', 'somthing', 'valid@gmail.com', 'mailto:?subject=okay&subject=444', From 3a2c3a700a8f756e3e4bb00d77d2f92c00014048 Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 21:03:49 +0000 Subject: [PATCH 4/6] chore: add another line to find partial coverage --- src/lib/isMailtoURI.js | 3 ++- test/validators.test.js | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/isMailtoURI.js b/src/lib/isMailtoURI.js index eb093db32..90d3d3483 100644 --- a/src/lib/isMailtoURI.js +++ b/src/lib/isMailtoURI.js @@ -42,7 +42,8 @@ export default function isMailtoURI(url, options) { } const replacedUrl = url.replace('mailto:', ''); - const [to = '', queryString = ''] = replacedUrl.split('?'); + const splitUrl = replacedUrl.split('?'); + const [to = '', queryString = ''] = splitUrl; if (!to && !queryString) { return true; diff --git a/test/validators.test.js b/test/validators.test.js index aa28b64c3..6c68cd71a 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -14498,7 +14498,6 @@ describe('Validators', () => { ], invalid: [ '', - '?', 'somthing', 'valid@gmail.com', 'mailto:?subject=okay&subject=444', From a971b48244e41b638cdbf304470d63dcf580e4fa Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 21:10:36 +0000 Subject: [PATCH 5/6] chore: remove default to --- src/lib/isMailtoURI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/isMailtoURI.js b/src/lib/isMailtoURI.js index 90d3d3483..fa5e0c1e2 100644 --- a/src/lib/isMailtoURI.js +++ b/src/lib/isMailtoURI.js @@ -43,7 +43,7 @@ export default function isMailtoURI(url, options) { const replacedUrl = url.replace('mailto:', ''); const splitUrl = replacedUrl.split('?'); - const [to = '', queryString = ''] = splitUrl; + const [to, queryString = ''] = splitUrl; if (!to && !queryString) { return true; From 15f83b0c2ce44e3e48dfcf37aa288bcd57784fe2 Mon Sep 17 00:00:00 2001 From: Rik Smale <13023439+WikiRik@users.noreply.github.com> Date: Fri, 24 Nov 2023 21:12:30 +0000 Subject: [PATCH 6/6] chore: combine consts again --- src/lib/isMailtoURI.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/isMailtoURI.js b/src/lib/isMailtoURI.js index fa5e0c1e2..67748a553 100644 --- a/src/lib/isMailtoURI.js +++ b/src/lib/isMailtoURI.js @@ -41,9 +41,7 @@ export default function isMailtoURI(url, options) { return false; } - const replacedUrl = url.replace('mailto:', ''); - const splitUrl = replacedUrl.split('?'); - const [to, queryString = ''] = splitUrl; + const [to, queryString = ''] = url.replace('mailto:', '').split('?'); if (!to && !queryString) { return true;